﻿1
00:00:00,890 --> 00:00:04,850
‫-: Jadi setelah memperbarui, mari sekarang izinkan pengguna saat ini

2
00:00:04,850 --> 00:00:07,293
‫untuk menghapus akunnya pada dasarnya.

3
00:00:09,070 --> 00:00:12,069
‫Sekarang ketika pengguna memutuskan untuk menghapus

4
00:00:12,069 --> 00:00:16,390
‫akunnya, kami sebenarnya tidak menghapus dokumen itu dari database.

5
00:00:16,390 --> 00:00:20,580
‫Tapi malah sebenarnya kita hanya menyetel akun menjadi tidak aktif.

6
00:00:20,580 --> 00:00:23,170
‫Sehingga pengguna mungkin di beberapa titik

7
00:00:23,170 --> 00:00:26,910
‫di masa depan mengaktifkan kembali akun dan juga agar kami

8
00:00:26,910 --> 00:00:29,820
‫pada dasarnya masih dapat mengakses akun di

9
00:00:29,820 --> 00:00:33,450
‫masa depan, bahkan jika secara resmi, katakanlah itu telah dihapus.

10
00:00:33,450 --> 00:00:34,440
‫Oke?

11
00:00:34,440 --> 00:00:36,380
‫Jadi untuk menerapkan ini, pertama-tama

12
00:00:36,380 --> 00:00:39,430
‫kita perlu membuat properti baru di skema kita.

13
00:00:39,430 --> 00:00:40,850
‫Jadi, mari kita pergi

14
00:00:40,850 --> 00:00:42,090
‫ke sana.

15
00:00:42,090 --> 00:00:43,740
‫Dan sekarang kami ingin

16
00:00:45,440 --> 00:00:47,163
‫memiliki bidang yang disebut aktif.

17
00:00:48,210 --> 00:00:49,043
‫Oke.

18
00:00:50,550 --> 00:00:52,150
‫Yang seharusnya bertipe

19
00:00:54,370 --> 00:00:55,550
‫Boolean.

20
00:00:55,550 --> 00:00:57,430
‫Oke, dan secara default itu

21
00:00:57,430 --> 00:00:58,263
‫akan

22
00:00:59,170 --> 00:01:00,040
‫menjadi kenyataan.

23
00:01:00,040 --> 00:01:02,180
‫Jadi setiap pengguna yang

24
00:01:02,180 --> 00:01:04,430
‫dibuat baru tentu saja merupakan

25
00:01:04,430 --> 00:01:07,300
‫pengguna aktif dan Boolean disetel ke true.

26
00:01:07,300 --> 00:01:11,360
‫Juga, kami tidak ingin menampilkan ini di output, oke.

27
00:01:11,360 --> 00:01:13,350
‫Karena pada dasarnya kami

28
00:01:13,350 --> 00:01:16,077
‫ingin menyembunyikan detail implementasi ini dari pengguna.

29
00:01:16,077 --> 00:01:17,260
‫Oke?

30
00:01:17,260 --> 00:01:19,920
‫Jadi kami tidak ingin ada yang

31
00:01:19,920 --> 00:01:24,390
‫tahu bahwa bendera ini, jadi bendera aktif ini ada di sini, oke.

32
00:01:24,390 --> 00:01:28,930
‫Jadi kita katakan pilih, dan setel ke false, oke.

33
00:01:28,930 --> 00:01:29,883
‫Jadi,

34
00:01:30,830 --> 00:01:33,140
‫untuk menghapus pengguna sekarang, yang

35
00:01:33,140 --> 00:01:35,400
‫perlu kita lakukan pada dasarnya

36
00:01:35,400 --> 00:01:38,210
‫adalah menyetel flag aktif itu ke false.

37
00:01:38,210 --> 00:01:39,043
‫Oke.

38
00:01:40,130 --> 00:01:42,390
‫Jadi mari kita buat fungsi itu di

39
00:01:42,390 --> 00:01:43,223
‫sini, ekspor. deleteMe, jadi

40
00:01:44,170 --> 00:01:45,529
‫itu updateMe dan

41
00:01:45,529 --> 00:01:46,930
‫sekarang deleteMe dan jadi

42
00:01:46,930 --> 00:01:47,763
‫kita

43
00:01:47,763 --> 00:01:51,614
‫sudah tahu bahwa kita menggunakan catchAsync di sini, bukan?

44
00:01:51,614 --> 00:01:54,410
‫Dan kemudian Async karena pada

45
00:01:54,410 --> 00:01:58,570
‫dasarnya kita sudah tahu bahwa kita akan memperbarui pengguna.

46
00:01:58,570 --> 00:02:01,150
‫Jadi permintaan merespon

47
00:02:01,150 --> 00:02:02,960
‫selanjutnya.

48
00:02:02,960 --> 00:02:03,913
‫Jadi,

49
00:02:06,470 --> 00:02:08,300
‫tunggu Pengguna. temukan dengan ID dan

50
00:02:08,300 --> 00:02:10,700
‫perbarui.

51
00:02:10,700 --> 00:02:12,573
‫Oke, dan sekali lagi, tentu

52
00:02:13,800 --> 00:02:15,960
‫saja hanya ada yang berfungsi untuk pengguna

53
00:02:15,960 --> 00:02:18,830
‫yang masuk dan ID pengguna disimpan dengan nyaman sesuai permintaan. pengguna. Indo.

54
00:02:18,830 --> 00:02:21,617
‫dan data yang ingin kita perbarui

55
00:02:21,617 --> 00:02:23,800
‫cukup aktif

56
00:02:23,800 --> 00:02:25,630
‫dan setel ke false.

57
00:02:26,680 --> 00:02:28,010
‫Baiklah.

58
00:02:28,900 --> 00:02:30,893
‫Sekarang mengirim kembali tanggapan juga cukup mudah.

59
00:02:31,870 --> 00:02:33,280
‫Kami menggunakan kode

60
00:02:33,280 --> 00:02:37,560
‫204 untuk dihapus yang kemudian akan membuatnya sehingga sebenarnya di Postman

61
00:02:37,560 --> 00:02:40,100
‫kami bahkan tidak melihat respons ini, oke.

62
00:02:40,100 --> 00:02:43,280
‫Tapi kami tetap mengirimkannya bersama

63
00:02:43,280 --> 00:02:47,230
‫dengan permintaan karena itu selalu merupakan praktik terbaik.

64
00:02:47,230 --> 00:02:49,830
‫Jadi, itu masih sukses dan kemudian ingat kami

65
00:02:50,770 --> 00:02:52,720
‫tidak mengirim data apa pun.

66
00:02:54,090 --> 00:02:56,610
‫Jadi, cukup atur ke no.

67
00:02:56,610 --> 00:02:59,470
‫Baiklah, dan sekarang tentu saja tambahkan juga ke

68
00:02:59,470 --> 00:03:01,343
‫semua rute di sini.

69
00:03:02,890 --> 00:03:05,080
‫Jadi itu cukup mirip.

70
00:03:05,080 --> 00:03:07,193
‫Jadi deleteMe lalu di sini deleteMe juga dan

71
00:03:08,850 --> 00:03:10,223
‫sekarang sebenarnya kami menggunakan

72
00:03:11,840 --> 00:03:12,880
‫metode delete http.

73
00:03:14,620 --> 00:03:16,420
‫Oke, dan sekali

74
00:03:16,420 --> 00:03:20,373
‫lagi, kami tidak akan benar-benar menghapus pengguna dari database.

75
00:03:21,480 --> 00:03:24,670
‫Tetapi selama pengguna tidak lagi dapat diakses di mana saja maka masih

76
00:03:24,670 --> 00:03:26,570
‫boleh menggunakan metode http ini di sini.

77
00:03:26,570 --> 00:03:30,550
‫Baiklah, jadi mari kita coba ini sekarang.

78
00:03:30,550 --> 00:03:34,277
‫Oke, meskipun kita belum 100% siap

79
00:03:34,277 --> 00:03:37,663
‫tapi mari kita coba sekarang.

80
00:03:38,900 --> 00:03:42,010
‫Baiklah, jadi, deleteMe dan itu

81
00:03:43,080 --> 00:03:46,193
‫adalah rute yang dilindungi dan jadi

82
00:03:47,200 --> 00:03:50,629
‫kita harus masuk dan jadi mari

83
00:03:50,629 --> 00:03:51,720
‫buat

84
00:03:51,720 --> 00:03:53,530
‫header otorisasi kita,

85
00:03:53,530 --> 00:03:55,290
‫Token Pembawa dan

86
00:03:56,150 --> 00:03:59,923
‫tentu saja yang ini dan itu sebenarnya.

87
00:04:00,910 --> 00:04:03,350
‫Kami tidak perlu melewatkan data apa pun di badan.

88
00:04:04,640 --> 00:04:06,040
‫Kami tidak perlu meneruskan data apa pun di URL.

89
00:04:06,040 --> 00:04:08,730
‫Baiklah, karena sekali lagi, satu-satunya data yang diperlukan

90
00:04:08,730 --> 00:04:11,173
‫adalah ID pengguna saat ini dan

91
00:04:12,010 --> 00:04:15,210
‫yang tidak dikodekan di dalam token web kita yang berdekatan.

92
00:04:15,210 --> 00:04:18,560
‫Oke?

93
00:04:18,560 --> 00:04:21,150
‫Jadi yang juga perlu kita lakukan adalah menghapus dan ya ini

94
00:04:21,150 --> 00:04:21,983
‫seharusnya berfungsi sekarang.

95
00:04:23,510 --> 00:04:25,720
‫Jadi sebelum kita melakukannya,

96
00:04:26,660 --> 00:04:29,240
‫mari kita dapatkan daftar semua pengguna.

97
00:04:29,240 --> 00:04:31,830
‫Baiklah dan yang kita hapus sekarang adalah

98
00:04:31,830 --> 00:04:33,113
‫yang terakhir ini.

99
00:04:34,870 --> 00:04:38,110
‫Jadi yang ini baru saja kita buat di kuliah terakhir.

100
00:04:38,110 --> 00:04:39,533
‫Oke, dan kami

101
00:04:41,060 --> 00:04:44,300
‫bekerja dengan yang ini karena ini adalah yang terakhir

102
00:04:44,300 --> 00:04:47,270
‫yang masuk dan jadi token ini di sini

103
00:04:47,270 --> 00:04:49,710
‫yang sekarang disimpan dalam variabel token kami.

104
00:04:49,710 --> 00:04:51,370
‫Oke, jadi saat kita menghapus

105
00:04:51,370 --> 00:04:54,460
‫pengguna, itu akan didasarkan pada ID yang berasal dari token ini.

106
00:04:54,460 --> 00:04:57,020
‫Jadi mari kita coba sekarang.

107
00:04:57,020 --> 00:05:00,163
‫Dan memang kita mendapatkan 204 kita.

108
00:05:01,700 --> 00:05:03,093
‫Dan sekarang yang saya minati

109
00:05:06,080 --> 00:05:08,690
‫adalah untuk melihat apakah properti pilih di sini telah berubah.

110
00:05:08,690 --> 00:05:11,600
‫Dan itu benar-benar terlihat persis sama di sini.

111
00:05:11,600 --> 00:05:13,763
‫Dan itu karena kami

112
00:05:15,290 --> 00:05:17,820
‫tidak membocorkan bidang pilih kepada pengguna.

113
00:05:17,820 --> 00:05:19,760
‫Jadi kita benar-benar perlu melihatnya di sini.

114
00:05:19,760 --> 00:05:22,460
‫Oke dan memang kita sudah aktif di sini disetel ke false.

115
00:05:22,460 --> 00:05:25,053
‫Oke, jadi itu yang ingin saya katakan sebelumnya.

116
00:05:26,180 --> 00:05:31,110
‫Jadi kami tidak membocorkan bidang aktif ke

117
00:05:31,110 --> 00:05:34,560
‫pengguna, bukan bidang pilih.

118
00:05:34,560 --> 00:05:37,640
‫Jadi aktif hanya terlihat bagi kami di sini

119
00:05:37,640 --> 00:05:40,020
‫di kompas tetapi tidak untuk pengguna.

120
00:05:40,020 --> 00:05:42,230
‫Sekarang sebagai langkah terakhir, kami tentu

121
00:05:42,230 --> 00:05:45,280
‫saja tidak ingin menampilkan pengguna yang tidak aktif

122
00:05:45,280 --> 00:05:46,920
‫di output ini, kan.

123
00:05:46,920 --> 00:05:50,080
‫Dan bagaimana menurut Anda kita bisa menerapkan ini?

124
00:05:50,080 --> 00:05:53,960
‫Yah kita akan menggunakan sesuatu yang jauh dari yang

125
00:05:53,960 --> 00:05:57,400
‫kita bicarakan seperti dua atau tiga bagian

126
00:05:57,400 --> 00:06:00,500
‫yang lalu yaitu query middleware, oke.

127
00:06:00,500 --> 00:06:03,400
‫Jadi query middleware sangat cocok untuk ini karena

128
00:06:03,400 --> 00:06:06,140
‫sekarang kita pada dasarnya dapat menambahkan satu

129
00:06:06,140 --> 00:06:08,940
‫langkah sebelum query lain yang kita lakukan di

130
00:06:08,940 --> 00:06:11,380
‫suatu tempat di aplikasi kita.

131
00:06:11,380 --> 00:06:14,160
‫Jadi mari kita pergi ke model pengguna kami di

132
00:06:14,160 --> 00:06:16,500
‫sini dan menambahkan middleware itu di sini.

133
00:06:16,500 --> 00:06:19,810
‫Jadi userSchema. pra, jadi sesuatu yang akan terjadi sebelum kueri dan

134
00:06:19,810 --> 00:06:21,763
‫kueri itu akan ditemukan.

135
00:06:25,310 --> 00:06:26,657
‫Oke, jadi inilah yang membuat kueri ini menjadi middleware.

136
00:06:29,339 --> 00:06:32,850
‫Kemudian fungsi reguler karena ingat bahwa

137
00:06:32,850 --> 00:06:37,760
‫jika tidak, kami tidak memiliki akses ke perselisihan

138
00:06:37,760 --> 00:06:40,583
‫atau setidaknya itu tidak akan

139
00:06:42,330 --> 00:06:44,670
‫memiliki nilai yang

140
00:06:44,670 --> 00:06:46,390
‫kami harapkan.

141
00:06:46,390 --> 00:06:49,600
‫Dan ingat bahwa di sini kita sebenarnya menggunakan ekspresi reguler sebelumnya

142
00:06:49,600 --> 00:06:51,460
‫pada dasarnya untuk mengatakan bahwa

143
00:06:51,460 --> 00:06:53,560
‫kita ingin fungsi middleware ini diterapkan ke

144
00:06:53,560 --> 00:06:55,440
‫setiap kueri yang dimulai dengan find.

145
00:06:55,440 --> 00:06:57,820
‫Jadi tidak hanya menemukan tetapi juga hal-hal seperti

146
00:06:57,820 --> 00:07:00,520
‫temukan dan perbarui, temukan dan hapus, dan semua pertanyaan seperti itu.

147
00:07:00,520 --> 00:07:03,850
‫Oke, jadi kami menggunakan ekspresi reguler untuk

148
00:07:03,850 --> 00:07:07,290
‫mencari kata atau string yang dimulai dengan find.

149
00:07:07,290 --> 00:07:10,290
‫Jadi itulah yang dilakukan simbol ini di sini.

150
00:07:10,290 --> 00:07:14,670
‫Dan kemudian akhiri ekspresi reguler.

151
00:07:14,670 --> 00:07:18,600
‫Jadi yang sangat sederhana.

152
00:07:18,600 --> 00:07:20,883
‫Ini adalah salah satu yang bahkan saya dapat

153
00:07:22,080 --> 00:07:24,250
‫menulis tanpa pergi ke Google terlebih dahulu dan

154
00:07:24,250 --> 00:07:25,720
‫mencoba menemukannya di sana.

155
00:07:25,720 --> 00:07:27,650
‫Oke, jadi ingat ini adalah

156
00:07:27,650 --> 00:07:30,600
‫middleware kueri dan oleh karena itu ini menunjuk

157
00:07:30,600 --> 00:07:32,480
‫ke kueri saat ini.

158
00:07:32,480 --> 00:07:36,760
‫Oke, jadi mari kita cepat kembali ke

159
00:07:36,760 --> 00:07:40,840
‫sini untuk melihat cara kerjanya.

160
00:07:42,350 --> 00:07:43,183
‫Jadi kami

161
00:07:43,183 --> 00:07:47,070
‫memiliki semua pengguna di sini dan di sini tentu saja kami memiliki kueri pencarian.

162
00:07:47,070 --> 00:07:48,970
‫Dan sekarang sebelum kueri

163
00:07:48,970 --> 00:07:52,900
‫itu benar-benar dieksekusi, kami ingin menambahkan sesuatu ke dalamnya.

164
00:07:52,900 --> 00:07:55,880
‫Artinya, kami hanya ingin menemukan dokumen yang

165
00:07:55,880 --> 00:07:58,840
‫properti aktifnya disetel ke true.

166
00:07:58,840 --> 00:08:00,540
‫Baiklah, jadi itu mudah.

167
00:08:00,540 --> 00:08:03,260
‫Ini dia.

168
00:08:03,260 --> 00:08:05,823
‫Dan

169
00:08:07,100 --> 00:08:09,840
‫jadi ini. temukan dan tentu saja objek filter kami hanya dokumen

170
00:08:09,840 --> 00:08:10,673
‫dengan set aktif

171
00:08:11,610 --> 00:08:12,443
‫ke true.

172
00:08:13,610 --> 00:08:15,037
‫Dan itu saja.

173
00:08:15,037 --> 00:08:15,980
‫Memanggil middleware berikutnya dan selesai.

174
00:08:15,980 --> 00:08:17,910
‫Oke, jadi jika kita sekarang melakukan kueri

175
00:08:19,930 --> 00:08:24,180
‫yang sama maka yang terakhir ini seharusnya tidak lagi muncul karena lagi-lagi aktif disetel

176
00:08:24,180 --> 00:08:25,013
‫ke false.

177
00:08:27,610 --> 00:08:31,410
‫Jadi itu tidak akan cocok dengan kueri

178
00:08:31,410 --> 00:08:34,350
‫yang baru saja kita tulis.

179
00:08:34,350 --> 00:08:36,840
‫Oke, sekarang kami tidak mendapatkan pengguna di

180
00:08:36,840 --> 00:08:40,240
‫sini dan saya rasa itu karena yang lain mereka tidak

181
00:08:40,240 --> 00:08:42,180
‫secara eksplisit mengatur properti aktif

182
00:08:42,180 --> 00:08:43,223
‫ke true.

183
00:08:45,400 --> 00:08:48,530
‫Jadi mari kita lakukan apa yang sebenarnya kita lakukan di bagian lain

184
00:08:48,530 --> 00:08:51,230
‫di mana kita mengatakan bahwa active tidak boleh salah.

185
00:08:51,230 --> 00:08:53,360
‫Oke, jadi kita menggunakan

186
00:08:53,360 --> 00:08:55,810
‫tidak sama dengan operator dan itu

187
00:08:55,810 --> 00:08:58,950
‫tentu saja harus di objek itu sendiri.

188
00:08:58,950 --> 00:09:02,230
‫Jadi tidak sama dengan palsu.

189
00:09:02,230 --> 00:09:03,690
‫Oke, jadi itu sangat berbeda di sini dalam kasus ini.

190
00:09:03,690 --> 00:09:05,900
‫Baiklah, jadi semua dokumen di

191
00:09:05,900 --> 00:09:09,343
‫mana active tidak sama dengan false sekarang akan muncul

192
00:09:10,290 --> 00:09:12,690
‫dan dua lainnya sekarang harus kembali.

193
00:09:12,690 --> 00:09:16,540
‫Dan memang di sinilah mereka.

194
00:09:16,540 --> 00:09:18,790
‫Oke dan jadi ini adalah bagaimana kami pada

195
00:09:18,790 --> 00:09:21,642
‫dasarnya menghapus pengguna kami sementara secara efektif tidak menghapusnya dari database.

196
00:09:21,642 --> 00:09:24,883
‫Oke, jadi kami tidak menghapus dokumen, kami

197
00:09:24,883 --> 00:09:27,390
‫hanya menandainya sebagai tidak aktif.

198
00:09:27,390 --> 00:09:31,190
‫Oke, mari kita cepat menyimpan ini di sini.

199
00:09:31,190 --> 00:09:34,760
‫Hapus pengguna saat

200
00:09:34,760 --> 00:09:37,210
‫ini.

201
00:09:37,210 --> 00:09:39,883
‫Hebat dan dengan ini kami benar-benar

202
00:09:41,100 --> 00:09:43,963
‫menyelesaikan bagian otentikasi dan otorisasi dari bagian

203
00:09:46,180 --> 00:09:47,013
‫ini.

204
00:09:48,680 --> 00:09:50,930
‫Jadi segala sesuatu yang terkait dengan topik

205
00:09:50,930 --> 00:09:53,470
‫ini dan juga kepada pengguna seperti memperbarui dan menghapus pengguna.

206
00:09:53,470 --> 00:09:55,970
‫Itu juga semacam bagian dari otentikasi

207
00:09:55,970 --> 00:09:57,460
‫dan otorisasi.

208
00:09:57,460 --> 00:10:00,440
‫Sekarang di sisa bagian ini,

209
00:10:00,440 --> 00:10:04,410
‫kita akan berbicara tentang keamanan karena tentu

210
00:10:04,410 --> 00:10:07,000
‫saja itu juga terkait

211
00:10:07,000 --> 00:10:08,410
‫dengan otentikasi.

212
00:10:08,410 --> 00:10:10,020
‫Oke, jadi kita akan berbicara

213
00:10:10,020 --> 00:10:12,210
‫tentang beberapa praktik terbaik dan kemudian juga

214
00:10:12,210 --> 00:10:14,740
‫menerapkan beberapa di antaranya ke dalam proyek kita.

