﻿1
00:00:01,054 --> 00:00:04,060
‫-: Dalam kuliah ini, kami akan mengizinkan

2
00:00:04,060 --> 00:00:07,283
‫pengguna yang saat ini masuk untuk memanipulasi data penggunanya.

3
00:00:09,020 --> 00:00:11,910
‫Jadi sekarang, dengan menerapkan pembaruan

4
00:00:11,910 --> 00:00:14,880
‫pengguna, kami benar-benar meninggalkan domain otentikasi

5
00:00:14,880 --> 00:00:19,030
‫dan beralih lebih ke hal-hal terkait pengguna nyata, oke?

6
00:00:19,030 --> 00:00:22,180
‫Jadi daripada menggunakan pengontrol autentikasi sekarang, mari

7
00:00:22,180 --> 00:00:24,840
‫terapkan fungsionalitas pembaruan ini langsung

8
00:00:24,840 --> 00:00:26,743
‫di userController mereka.

9
00:00:27,850 --> 00:00:28,970
‫Oke, jadi

10
00:00:28,970 --> 00:00:31,710
‫kita punya banyak handler, jadi

11
00:00:31,710 --> 00:00:35,270
‫rute, yang tidak benar-benar diimplementasikan di sini, oke?

12
00:00:35,270 --> 00:00:37,420
‫Tapi mari kita kesampingkan untuk saat

13
00:00:37,420 --> 00:00:40,553
‫ini dan buat fungsi handler baru kita di sini.

14
00:00:42,800 --> 00:00:45,143
‫Dan yang ini akan disebut updateMe.

15
00:00:48,312 --> 00:00:51,260
‫Dan sekali lagi, ini updateMe karena untuk memperbarui

16
00:00:51,260 --> 00:00:53,323
‫pengguna yang saat ini diautentikasi.

17
00:00:54,580 --> 00:00:56,620
‫Nanti kita juga akan mengimplementasikan

18
00:00:56,620 --> 00:01:00,070
‫fungsi updateUser ini disini, tapi itu nanti seperti

19
00:01:00,070 --> 00:01:03,680
‫administrator untuk mengupdate semua data user, sedangkan user

20
00:01:03,680 --> 00:01:07,490
‫sendiri hanya bisa update, setidaknya untuk saat ini, nama

21
00:01:07,490 --> 00:01:09,293
‫dan alamat email.

22
00:01:12,180 --> 00:01:15,900
‫Jadi, permintaan, tanggapan, dan selanjutnya.

23
00:01:17,205 --> 00:01:20,205
‫(keyboard clacking) Dan kami benar-benar melakukan

24
00:01:22,550 --> 00:01:25,800
‫ini, jadi memperbarui data pengguna, dalam rute

25
00:01:25,800 --> 00:01:29,180
‫yang berbeda dari memperbarui kata sandi pengguna,

26
00:01:29,180 --> 00:01:32,040
‫karena biasanya dalam aplikasi web biasa

27
00:01:32,040 --> 00:01:33,773
‫itu selalu dilakukan.

28
00:01:34,720 --> 00:01:36,370
‫Jadi Anda biasanya memiliki satu

29
00:01:36,370 --> 00:01:38,190
‫tempat di mana Anda dapat memperbarui

30
00:01:38,190 --> 00:01:40,630
‫kata sandi Anda dan kemudian tempat lain di

31
00:01:40,630 --> 00:01:43,700
‫mana Anda dapat memperbarui data tentang pengguna atau akun itu sendiri.

32
00:01:43,700 --> 00:01:46,993
‫Jadi di sini, pada dasarnya kita mengikuti pola itu.

33
00:01:48,592 --> 00:01:52,410
‫Jadi sekali lagi, mari kita mulai dengan menyusun langkah-langkah kita.

34
00:01:52,410 --> 00:01:54,140
‫Dan hal pertama yang ingin

35
00:01:54,140 --> 00:01:56,090
‫kami lakukan di sini pada dasarnya

36
00:01:56,090 --> 00:01:58,703
‫membuat kesalahan jika pengguna mencoba memperbarui kata sandi.

37
00:02:01,993 --> 00:02:05,737
‫Jadi buat kesalahan jika pengguna memposting pada

38
00:02:07,330 --> 00:02:10,073
‫dasarnya data kata sandi.

39
00:02:13,406 --> 00:02:17,980
‫Tetapi jika tidak, kita hanya perlu memperbarui dokumen pengguna.

40
00:02:20,610 --> 00:02:23,720
‫Cukup sederhana, dan mari kita mulai dengan

41
00:02:23,720 --> 00:02:24,783
‫yang pertama.

42
00:02:26,410 --> 00:02:28,180
‫Tentu saja akan ada

43
00:02:28,180 --> 00:02:30,220
‫badan di mana kita akan meneruskan

44
00:02:30,220 --> 00:02:33,933
‫data, jadi jika di badan itu ada data tentang kata

45
00:02:35,890 --> 00:02:37,929
‫sandi, atau konfirmasi kata sandi...

46
00:02:37,929 --> 00:02:45,350
‫(tombol berbunyi) Konfirmasi.

47
00:02:45,350 --> 00:02:49,410
‫Nah dalam hal ini, kami ingin segera kembali

48
00:02:49,410 --> 00:02:51,833
‫dan membuat Apperror baru.

49
00:02:53,920 --> 00:02:57,110
‫Oh dan saya kira kita belum menerapkannya di sini,

50
00:02:57,110 --> 00:02:58,780
‫atau benar-benar membutuhkan, jadi

51
00:02:58,780 --> 00:03:00,663
‫mari kita ambil dari sini.

52
00:03:01,660 --> 00:03:02,730
‫Jadi AppError...

53
00:03:04,360 --> 00:03:05,580
‫Itu tidak

54
00:03:05,580 --> 00:03:07,400
‫ada di sini, jadi userController...

55
00:03:11,550 --> 00:03:13,550
‫Jadi AppError, ini dia.

56
00:03:15,700 --> 00:03:20,700
‫Jadi 'Rute ini bukan untuk pembaruan kata sandi.

57
00:03:26,280 --> 00:03:29,623
‫'Silakan gunakan /updateMYPassword. ' Jadi pada

58
00:03:32,160 --> 00:03:34,960
‫dasarnya rute yang kami tentukan sebelumnya.

59
00:03:34,960 --> 00:03:36,720
‫Jadi perbaruiMYPassword.

60
00:03:39,226 --> 00:03:42,753
‫Dan juga, kode 400 untuk permintaan yang buruk.

61
00:03:46,150 --> 00:03:48,743
‫Dan mari kita coba yang ini segera.

62
00:03:49,921 --> 00:03:51,770
‫Dan untuk itu hanya

63
00:03:51,770 --> 00:03:54,133
‫dua hal, pertama kita perlu mengirim

64
00:03:56,230 --> 00:04:00,660
‫kembali tanggapan, jadi katakanlah res. status(200) untuk oke, lalu

65
00:04:00,660 --> 00:04:01,993
‫json, tambahkan

66
00:04:07,130 --> 00:04:09,070
‫status sebagai sukses.

67
00:04:09,070 --> 00:04:11,860
‫Dan nanti kami juga akan mengirim pengguna yang diperbarui,

68
00:04:11,860 --> 00:04:13,563
‫tetapi biarkan saja nanti.

69
00:04:14,610 --> 00:04:16,840
‫Jadi begitulah jawabannya, dan sekarang tentunya

70
00:04:16,840 --> 00:04:19,893
‫kita juga perlu menambahkan route ini ke Router pengguna kita.

71
00:04:21,880 --> 00:04:24,993
‫Jadi itu tentu saja mirip dengan memperbarui kata

72
00:04:26,390 --> 00:04:29,663
‫sandi saya, jadi router, dan tentu saja tambalan, /updateMe,

73
00:04:32,066 --> 00:04:32,899
‫sekali

74
00:04:35,370 --> 00:04:38,080
‫lagi, itu adalah rute yang dilindungi

75
00:04:38,080 --> 00:04:42,120
‫sehingga hanya pengguna yang saat ini diautentikasi yang dapat memperbarui

76
00:04:42,120 --> 00:04:43,603
‫data pengguna saat ini.

77
00:04:45,420 --> 00:04:48,240
‫Dan semua ini tentunya sangat aman,

78
00:04:48,240 --> 00:04:51,540
‫lagi-lagi karena ID user yang akan diupdate berasal

79
00:04:51,540 --> 00:04:53,960
‫dari request. pengguna, yang

80
00:04:53,960 --> 00:04:58,120
‫ditetapkan oleh middleware pelindung ini di sini, yang pada gilirannya

81
00:04:58,120 --> 00:05:01,700
‫mendapat ide dari token web json, dan karena tidak

82
00:05:01,700 --> 00:05:05,180
‫ada yang dapat mengubah ID di token web

83
00:05:05,180 --> 00:05:07,920
‫json itu tanpa mengetahui rahasianya, kami

84
00:05:07,920 --> 00:05:11,260
‫tahu bahwa ID tersebut kemudian aman karena itu.

85
00:05:11,260 --> 00:05:13,993
‫Dan karena ini, semuanya di sini aman.

86
00:05:16,342 --> 00:05:18,675
‫Jadi, userController. perbaruiME.

87
00:05:21,554 --> 00:05:22,471
‫Sekarang oke...

88
00:05:24,050 --> 00:05:26,003
‫Jadi mari kita uji ini sekarang.

89
00:05:28,830 --> 00:05:30,883
‫Silakan dan salin ini lagi.

90
00:05:34,530 --> 00:05:37,363
‫Dan pertama-tama, mari kita atur otorisasi.

91
00:05:38,300 --> 00:05:41,520
‫Sekali lagi dari Token Pembawa dan tentu saja

92
00:05:41,520 --> 00:05:43,770
‫dengan variabel lingkungan ini.

93
00:05:45,788 --> 00:05:48,470
‫Juga perlu permintaan tambalan, dan

94
00:05:48,470 --> 00:05:50,653
‫kita perlu menentukan badan.

95
00:05:53,740 --> 00:05:56,110
‫Dan saya ingin memulai dengan mengujinya, tentu

96
00:05:56,110 --> 00:05:57,930
‫saja menyebabkan kesalahan ini, jadi mari

97
00:05:57,930 --> 00:05:59,653
‫kita tentukan kata sandi, dan

98
00:06:06,170 --> 00:06:07,613
‫kemudian sebuah nama.

99
00:06:12,620 --> 00:06:15,883
‫Jadi katakanlah ini adalah nama yang ingin kita perbarui, jadi mari

100
00:06:17,030 --> 00:06:18,620
‫kita simpan ini di sini.

101
00:06:20,911 --> 00:06:23,361
‫Dan sebenarnya itu tentu saja ada di folder Users.

102
00:06:26,960 --> 00:06:28,973
‫Data pengguna.

103
00:06:30,810 --> 00:06:32,750
‫Dan sebenarnya mari kita buat folder

104
00:06:32,750 --> 00:06:35,670
‫baru di sini, dan letakkan hal-hal yang terkait dengan otentikasi

105
00:06:35,670 --> 00:06:37,123
‫ke dalam foldernya sendiri.

106
00:06:39,998 --> 00:06:42,960
‫Jadi di sini,

107
00:06:42,960 --> 00:06:47,960
‫kami membuat folder baru dan menyebutnya Otentikasi.

108
00:06:48,150 --> 00:06:49,460
‫Itu tidak benar.

109
00:06:49,460 --> 00:06:52,354
‫AH-KEMUDIAN-TICATION.

110
00:06:52,354 --> 00:06:53,554
‫(terkekeh) Jadi begitu.

111
00:06:55,480 --> 00:06:58,593
‫Jadi kata sandi terkait dengan

112
00:06:59,550 --> 00:07:04,530
‫otentikasi, juga mengatur ulang kata sandi, lupa kata

113
00:07:04,530 --> 00:07:07,193
‫sandi, masuk, dan keluar.

114
00:07:11,078 --> 00:07:13,245
‫Jadi, mari kita tutup keduanya,

115
00:07:14,440 --> 00:07:16,800
‫dan sekarang masuk sebagai, atau sebenarnya

116
00:07:16,800 --> 00:07:18,600
‫mari buat pengguna baru.

117
00:07:20,490 --> 00:07:22,043
‫Jadi mari daftar

118
00:07:24,170 --> 00:07:28,600
‫di sini, sebagai pengguna biasa sehingga kami dapat menyingkirkan keduanya di sini.

119
00:07:28,600 --> 00:07:33,150
‫Dan sekarang saya hanya menyebutnya, well, tes lagi, oke?

120
00:07:33,150 --> 00:07:36,060
‫Dan mari kita lihat pengguna yang saat ini kita

121
00:07:38,520 --> 00:07:40,100
‫miliki di database kita.

122
00:07:40,100 --> 00:07:41,950
‫Jadi kita memiliki hello dan

123
00:07:41,950 --> 00:07:43,823
‫admin, jadi sekarang mari kita gunakan test.

124
00:07:47,400 --> 00:07:49,260
‫Dan saya selalu lagi, menggunakan kata sandi yang

125
00:07:49,260 --> 00:07:50,483
‫sama untuk membuatnya sangat mudah.

126
00:07:52,310 --> 00:07:55,833
‫Baiklah, kita perlu memberi nama juga, sebut saja

127
00:07:59,530 --> 00:08:01,003
‫J di sini.

128
00:08:03,180 --> 00:08:05,570
‫Dan sekarang memang kami mendapatkan token kami,

129
00:08:05,570 --> 00:08:07,120
‫dan kami sudah masuk,

130
00:08:07,120 --> 00:08:09,250
‫jadi sekarang ketika kami memperbarui pengguna,

131
00:08:09,250 --> 00:08:12,083
‫itu seharusnya untuk pengguna yang baru saja masuk.

132
00:08:13,734 --> 00:08:15,770
‫Jadi saya tidak mencoba memperbarui dan

133
00:08:15,770 --> 00:08:19,180
‫tentu saja, belum ada pembaruan yang diterapkan dan itu tidak akan berhasil.

134
00:08:19,180 --> 00:08:21,820
‫Yang ingin saya lihat adalah kesalahan yang seharusnya

135
00:08:21,820 --> 00:08:25,713
‫terjadi karena saya menentukan properti kata sandi ini di sini di badan.

136
00:08:27,361 --> 00:08:28,720
‫Jadi mari kita mencobanya.

137
00:08:28,720 --> 00:08:31,973
‫Dan di sini kita mendapatkan kesalahan yang tampak aneh seperti

138
00:08:33,190 --> 00:08:35,700
‫ini, tapi saya rasa itu hanya karena kita

139
00:08:35,700 --> 00:08:37,150
‫tidak benar-benar memperbarui rute

140
00:08:37,150 --> 00:08:40,500
‫di sini, jadi ingat saya baru saja menyalin rute, jadi URL-nya,

141
00:08:40,500 --> 00:08:42,160
‫dan hanya menempelkannya di sini.

142
00:08:42,160 --> 00:08:46,610
‫Tapi tentu saja, perlu updateME.

143
00:08:46,610 --> 00:08:48,630
‫Jadi mari kita coba lagi.

144
00:08:48,630 --> 00:08:51,617
‫Jadi sekarang kita benar-benar mendapatkan kesalahan yang kita tentukan.

145
00:08:51,617 --> 00:08:53,627
‫"Rute ini bukan untuk pembaruan kata sandi.

146
00:08:53,627 --> 00:08:56,300
‫"Silakan gunakan /updateMyPassowrd. " Sangat

147
00:08:56,300 --> 00:08:58,450
‫bagus, bagian itu berfungsi, dan

148
00:08:58,450 --> 00:09:01,890
‫itu juga berfungsi sehingga kita perlu diautentikasi.

149
00:09:01,890 --> 00:09:05,700
‫Karena katakanlah kita tidak memiliki otentikasi, dan

150
00:09:05,700 --> 00:09:08,410
‫katakanlah: Tidak Ada Auth.

151
00:09:08,410 --> 00:09:10,330
‫Jadi mari kita coba lagi sekarang.

152
00:09:10,330 --> 00:09:12,867
‫Dan memang, "Anda belum masuk!

153
00:09:12,867 --> 00:09:15,157
‫"Silakan masuk untuk mendapatkan akses. " Jadi

154
00:09:17,300 --> 00:09:19,800
‫hanya untuk membuktikan kepada Anda bahwa otentikasi kami

155
00:09:19,800 --> 00:09:21,853
‫sebenarnya juga melakukan tugasnya di sini.

156
00:09:23,260 --> 00:09:25,450
‫Tapi tentu saja, kami menginginkan Token Pembawa

157
00:09:25,450 --> 00:09:27,933
‫kami, dan sekarang kami mendapatkan kesalahan lain itu.

158
00:09:29,990 --> 00:09:32,790
‫Bagus, jadi sekarang mari

159
00:09:32,790 --> 00:09:36,943
‫kita terapkan fungsionalitas lainnya untuk handler updateMe.

160
00:09:38,170 --> 00:09:40,970
‫Jadi memperbarui dokumen pengguna, dan kami dapat mencoba

161
00:09:40,970 --> 00:09:43,910
‫melakukannya dengan pengguna. aman.

162
00:09:43,910 --> 00:09:46,860
‫Jadi seperti sebelumnya, pada dasarnya mendapatkan pengguna

163
00:09:46,860 --> 00:09:49,430
‫kemudian memperbarui properti, dan pada

164
00:09:49,430 --> 00:09:51,030
‫akhirnya, menyimpan dokumen.

165
00:09:51,030 --> 00:09:53,500
‫Tetapi masalahnya adalah bahwa ada beberapa bidang

166
00:09:53,500 --> 00:09:56,320
‫yang diperlukan yang tidak kami perbarui, dan

167
00:09:56,320 --> 00:09:57,680
‫karena itu, kami

168
00:09:57,680 --> 00:09:59,490
‫akan mengalami beberapa kesalahan.

169
00:09:59,490 --> 00:10:01,330
‫Dan untuk menunjukkan kepada Anda dengan cepat,

170
00:10:01,330 --> 00:10:02,530
‫izinkan saya melakukannya.

171
00:10:03,430 --> 00:10:06,403
‫Oke, sangat cepat, mendapatkan pengguna di sini.

172
00:10:09,490 --> 00:10:14,490
‫Jadi findbyId, jadi minta. pengguna seperti yang sudah kita ketahui, . Indo.

173
00:10:17,540 --> 00:10:22,540
‫Dan kemudian katakanlah, pengguna. name = 'Jonas' dan kemudian menunggu

174
00:10:25,582 --> 00:10:27,297
‫pengguna. menyimpan.

175
00:10:30,660 --> 00:10:33,763
‫Tetapi sekali lagi Anda melihat bahwa ini akan memberi kita kesalahan.

176
00:10:35,277 --> 00:10:37,320
‫Tapi untuk sekarang mari kita juga

177
00:10:37,320 --> 00:10:38,763
‫mendeklarasikannya sebagai fungsi async.

178
00:10:45,700 --> 00:10:47,970
‫Dan baiklah.

179
00:10:47,970 --> 00:10:49,690
‫Jadi mari kita

180
00:10:49,690 --> 00:10:52,780
‫uji sekarang, tetapi kita akan melihat kesalahan sekarang.

181
00:10:52,780 --> 00:10:55,113
‫Jadi mari kita singkirkan yang

182
00:10:58,910 --> 00:11:02,560
‫ini, dan memang kita mendapatkan: "Mohon konfirmasi kata sandi Anda".

183
00:11:02,560 --> 00:11:06,380
‫Dan itu karena passwordConfirm adalah bidang yang wajib diisi tetapi

184
00:11:06,380 --> 00:11:08,763
‫kami tentu saja tidak menentukannya.

185
00:11:09,770 --> 00:11:12,940
‫Jadi metode aman bukanlah pilihan yang benar

186
00:11:12,940 --> 00:11:14,760
‫dalam kasus ini.

187
00:11:14,760 --> 00:11:16,560
‫Jadi yang bisa kita

188
00:11:16,560 --> 00:11:19,453
‫lakukan sekarang adalah benar-benar menggunakan findById dan memperbarui.

189
00:11:20,540 --> 00:11:23,560
‫Jadi kami tidak dapat menggunakannya sebelumnya karena semua alasan yang

190
00:11:23,560 --> 00:11:25,970
‫saya jelaskan kepada Anda beberapa kali sekarang.

191
00:11:25,970 --> 00:11:28,460
‫Tapi sekarang karena kita tidak berurusan

192
00:11:28,460 --> 00:11:32,380
‫dengan kata sandi, tetapi hanya dengan data yang tidak sensitif ini

193
00:11:32,380 --> 00:11:36,263
‫seperti nama atau email, kita sekarang dapat menggunakan findById dan memperbarui.

194
00:11:38,810 --> 00:11:40,343
‫Jadi, mari kita singkirkan ini.

195
00:11:42,380 --> 00:11:46,040
‫Sebut juga di sini updatedUser.

196
00:11:46,040 --> 00:11:48,950
‫Dan kemudian di sini, kita harus melewati tidak hanya

197
00:11:48,950 --> 00:11:51,400
‫ID, tetapi juga data yang harus diperbarui,

198
00:11:51,400 --> 00:11:53,040
‫dan kemudian beberapa opsi.

199
00:11:53,040 --> 00:11:56,303
‫Jadi datanya, sekarang mari kita sebut x di sini, dan

200
00:11:57,650 --> 00:11:59,140
‫saya memberi tahu Anda

201
00:11:59,140 --> 00:12:02,250
‫mengapa dalam sedetik, dan kemudian opsi yang ingin kita berikan.

202
00:12:02,250 --> 00:12:04,180
‫Dan seperti sebelumnya, opsi

203
00:12:04,180 --> 00:12:07,240
‫baru disetel ke true, sehingga mengembalikan objek

204
00:12:07,240 --> 00:12:09,090
‫baru, jadi pada

205
00:12:09,090 --> 00:12:12,033
‫dasarnya objek yang diperbarui, bukan yang lama.

206
00:12:12,880 --> 00:12:16,393
‫Dan juga runValidators disetel ke true.

207
00:12:17,670 --> 00:12:22,000
‫Karena memang kami ingin model memvalidasi dokumen kami.

208
00:12:22,000 --> 00:12:25,490
‫Jadi misalnya, jika kita memasukkan alamat email yang tidak valid,

209
00:12:25,490 --> 00:12:28,490
‫itu harus ditangkap oleh Validator dan mengembalikan kesalahan.

210
00:12:29,770 --> 00:12:34,770
‫Sekarang mengapa saya meletakkan x di sini, dan bukan hanya meminta. tubuh?

211
00:12:35,040 --> 00:12:37,510
‫Nah itu karena sebenarnya kita tidak

212
00:12:37,510 --> 00:12:40,010
‫ingin mengupdate semua yang ada di

213
00:12:40,010 --> 00:12:43,130
‫body, karena misalkan user meletakkan role misalnya

214
00:12:43,130 --> 00:12:44,513
‫di body.

215
00:12:46,550 --> 00:12:51,550
‫Kita bisa memiliki tubuh. peran disetel ke admin misalnya,

216
00:12:52,510 --> 00:12:55,040
‫dan ini kemudian akan memungkinkan pengguna mana

217
00:12:55,040 --> 00:12:57,860
‫pun untuk mengubah peran, misalnya, menjadi administrator.

218
00:12:57,860 --> 00:13:00,200
‫Dan tentu saja itu tidak bisa dibiarkan.

219
00:13:00,200 --> 00:13:02,850
‫Atau pengguna juga dapat mengubah token reset

220
00:13:02,850 --> 00:13:05,350
‫mereka, atau ketika token reset berakhir,

221
00:13:05,350 --> 00:13:08,290
‫dan semua itu tentu saja tidak boleh diizinkan.

222
00:13:08,290 --> 00:13:10,440
‫Jadi melakukan sesuatu seperti ini tentu

223
00:13:10,440 --> 00:13:12,520
‫saja akan menjadi kesalahan besar.

224
00:13:12,520 --> 00:13:14,773
‫Jadi kita perlu memastikan bahwa objek

225
00:13:14,773 --> 00:13:16,640
‫yang kita lewati di sini,

226
00:13:16,640 --> 00:13:19,460
‫jadi sekali lagi objek yang akan berisi data

227
00:13:19,460 --> 00:13:20,860
‫yang akan diupdate,

228
00:13:20,860 --> 00:13:23,540
‫hanya berisi nama dan email, karena untuk

229
00:13:23,540 --> 00:13:25,940
‫saat ini hanya ini yang ingin kita

230
00:13:25,940 --> 00:13:27,623
‫izinkan untuk diupdate .

231
00:13:28,640 --> 00:13:31,150
‫Jadi pada dasarnya kami ingin memfilter badan

232
00:13:31,150 --> 00:13:34,370
‫sehingga pada akhirnya hanya berisi nama dan email dan tidak

233
00:13:34,370 --> 00:13:35,610
‫ada yang lain.

234
00:13:35,610 --> 00:13:38,620
‫Jadi jika kemudian pengguna mencoba mengubah peran,

235
00:13:38,620 --> 00:13:40,250
‫itu akan disaring

236
00:13:40,250 --> 00:13:43,483
‫sehingga tidak pernah menemukan jalannya ke database kami.

237
00:13:44,769 --> 00:13:48,400
‫Jadi yang ingin kita lakukan pada dasarnya adalah membuat variabel

238
00:13:48,400 --> 00:13:49,750
‫dan katakanlah filteredBody,

239
00:13:52,400 --> 00:13:56,240
‫dan kemudian kita akan membuat fungsi dalam sedetik, tapi mari kita

240
00:13:56,240 --> 00:13:58,620
‫gunakan di sini, supaya Anda melihat

241
00:13:58,620 --> 00:14:00,420
‫bagaimana itu akan bekerja.

242
00:14:01,450 --> 00:14:03,250
‫Dan kemudian di

243
00:14:03,250 --> 00:14:05,850
‫sini kita melewatkan data, jadi objek yang

244
00:14:05,850 --> 00:14:09,890
‫ingin kita filter, jadi req. body, karena di sanalah semua

245
00:14:09,890 --> 00:14:12,440
‫data berada, lalu kami memberikan beberapa argumen.

246
00:14:12,440 --> 00:14:15,170
‫Satu untuk setiap bidang yang ingin kita simpan

247
00:14:15,170 --> 00:14:16,183
‫di objek.

248
00:14:17,950 --> 00:14:20,343
‫Jadi kami ingin menyimpan bidang yang disebut

249
00:14:21,400 --> 00:14:23,653
‫nama, dan bidang yang disebut email.

250
00:14:25,120 --> 00:14:28,790
‫Dan lagi, beberapa saat kemudian kita mungkin menambahkan lebih banyak bidang

251
00:14:28,790 --> 00:14:30,910
‫di sini, misalnya nanti kita mungkin

252
00:14:30,910 --> 00:14:32,850
‫mengizinkan pengguna untuk mengunggah gambar.

253
00:14:32,850 --> 00:14:35,709
‫Dan tentunya itu juga perlu kita

254
00:14:35,709 --> 00:14:37,220
‫update di database.

255
00:14:37,220 --> 00:14:39,010
‫Tapi untuk saat ini,

256
00:14:39,010 --> 00:14:43,343
‫yang ingin kami simpan di badan adalah nama dan email dan memfilter sisanya.

257
00:14:45,410 --> 00:14:48,067
‫Jadi di sini, sekarang mari kita gunakan

258
00:14:49,730 --> 00:14:51,573
‫filteredBody, bukan x tentunya.

259
00:14:54,400 --> 00:14:57,200
‫Dan sekarang yang perlu kita lakukan

260
00:14:57,200 --> 00:15:00,833
‫adalah benar-benar mengimplementasikan fungsi ini yang akan menangani penyaringan objek.

261
00:15:02,640 --> 00:15:03,893
‫Jadi mari kita lakukan itu di sini.

262
00:15:09,151 --> 00:15:09,984
‫FilterObj,

263
00:15:12,350 --> 00:15:15,050
‫yang akan mengambil objek dan

264
00:15:15,050 --> 00:15:18,853
‫kemudian parameter lainnya untuk semua bidang yang diizinkan.

265
00:15:21,320 --> 00:15:23,670
‫Jadi ini pada dasarnya akan

266
00:15:23,670 --> 00:15:27,203
‫membuat array yang berisi semua argumen yang kita berikan.

267
00:15:28,690 --> 00:15:31,750
‫Jadi pada dasarnya itu diteruskan setelah yang pertama ini.

268
00:15:31,750 --> 00:15:36,750
‫Jadi dalam hal ini, itu adalah array yang berisi nama dan email.

269
00:15:39,610 --> 00:15:41,260
‫Jadi yang perlu kita

270
00:15:41,260 --> 00:15:44,560
‫lakukan sekarang pada dasarnya adalah mengulang objek dan untuk setiap elemen

271
00:15:44,560 --> 00:15:46,240
‫memeriksa apakah itu salah satu bidang

272
00:15:46,240 --> 00:15:49,110
‫yang diizinkan, dan jika ya, cukup tambahkan ke objek baru,

273
00:15:49,110 --> 00:15:51,160
‫yang pada akhirnya akan kita kembalikan .

274
00:15:51,160 --> 00:15:53,840
‫Dan mungkin ada cara yang lebih efisien dan lebih baik untuk

275
00:15:53,840 --> 00:15:55,140
‫mengimplementasikan ini, tetapi mari

276
00:15:55,140 --> 00:15:56,990
‫kita lakukan dengan sangat cepat di sini.

277
00:15:58,810 --> 00:16:00,790
‫Jadi kita akan

278
00:16:00,790 --> 00:16:04,893
‫mengulang objek dengan mengatakan Object. kunci dari objek yang kita lewati.

279
00:16:05,940 --> 00:16:08,210
‫Jadi itulah salah satu cara mudah untuk

280
00:16:08,210 --> 00:16:09,883
‫mengulang objek dalam JavaScript.

281
00:16:12,612 --> 00:16:15,710
‫Jadi, this di sini pada dasarnya mengembalikan array

282
00:16:15,710 --> 00:16:17,560
‫yang berisi semua nama

283
00:16:17,560 --> 00:16:19,850
‫kunci, jadi nama bidang objek ini,

284
00:16:19,850 --> 00:16:21,713
‫dan kemudian kita dapat mengulangnya.

285
00:16:22,570 --> 00:16:24,023
‫Kemudian fungsi panggilan balik kami.

286
00:16:24,960 --> 00:16:27,933
‫Dan untuk setiap elemen, inilah yang akan kita lakukan.

287
00:16:29,080 --> 00:16:32,680
‫Jadi, jika larik bidang yang diizinkan menyertakan elemen

288
00:16:33,680 --> 00:16:38,680
‫saat ini, jadi nama bidang saat ini, maka kami ingin

289
00:16:38,840 --> 00:16:41,310
‫menambahkannya ke objek baru.

290
00:16:41,310 --> 00:16:43,533
‫Jadi mari kita cepat membuat yang

291
00:16:44,580 --> 00:16:47,340
‫itu di sini, jadi const newObj yang kosong

292
00:16:48,540 --> 00:16:50,260
‫untuk saat ini, dan

293
00:16:50,260 --> 00:16:53,010
‫pada akhirnya, itulah yang akan kita kembalikan.

294
00:16:54,820 --> 00:16:57,500
‫Jadi baruObj.

295
00:16:57,500 --> 00:17:00,770
‫Jadi jika bidang saat ini adalah salah satu

296
00:17:00,770 --> 00:17:05,770
‫bidang yang diizinkan, maka newObj dengan nama bidang bidang saat ini, harus sama

297
00:17:07,260 --> 00:17:10,970
‫dengan apa pun yang ada di objek pada elemen saat

298
00:17:10,970 --> 00:17:13,743
‫ini, jadi nama bidang saat ini.

299
00:17:15,330 --> 00:17:17,593
‫Jadi jangan jika ini terlihat

300
00:17:18,460 --> 00:17:20,740
‫agak membingungkan, ini lagi-lagi hanya

301
00:17:20,740 --> 00:17:24,450
‫JavaScript standar, tidak ada hubungannya tanpa JS atau eXpress

302
00:17:24,450 --> 00:17:25,593
‫atau semacamnya.

303
00:17:26,810 --> 00:17:29,510
‫Jadi sekali lagi, semua yang kita lakukan di sini pada dasarnya

304
00:17:29,510 --> 00:17:32,090
‫adalah mengulang semua bidang yang ada di objek dan kemudian

305
00:17:32,090 --> 00:17:33,710
‫untuk setiap bidang, kita memeriksa

306
00:17:33,710 --> 00:17:35,700
‫apakah itu salah satu bidang yang diizinkan.

307
00:17:35,700 --> 00:17:39,300
‫Dan jika ya, maka kita membuat bidang baru di objek baru, tentu

308
00:17:39,300 --> 00:17:40,610
‫saja dengan nama

309
00:17:40,610 --> 00:17:43,700
‫yang sama, jadi tetap beri nama elemen, dengan nilai yang

310
00:17:43,700 --> 00:17:46,317
‫sama persis seperti yang ada di objek aslinya.

311
00:17:46,317 --> 00:17:49,193
‫Dan kemudian pada akhirnya, kami mengembalikan yang itu.

312
00:17:51,880 --> 00:17:55,323
‫Dan jadi ini sekarang semua harus bekerja di sini.

313
00:17:56,260 --> 00:17:58,520
‫Maka yang perlu kita lakukan pada

314
00:17:58,520 --> 00:18:01,603
‫akhirnya adalah mengirim pengguna yang diperbarui itu ke klien.

315
00:18:03,040 --> 00:18:04,083
‫Jadi, pengguna.

316
00:18:06,120 --> 00:18:11,120
‫Sekarang tentu saja, kita perlu meletakkan udadedUser lalu di

317
00:18:11,160 --> 00:18:15,400
‫sini, simpan lagi, dan sekarang seharusnya berfungsi.

318
00:18:15,400 --> 00:18:17,877
‫Se benar-benar apa yang kami lakukan di sini adalah..

319
00:18:21,310 --> 00:18:24,003
‫perbarui pengguna terakhir, dan

320
00:18:25,450 --> 00:18:30,450
‫sebelum kami melakukannya, kami sebenarnya memfilter nama bidang

321
00:18:34,490 --> 00:18:39,303
‫yang tidak diinginkan yang tidak diizinkan untuk diperbarui.

322
00:18:40,758 --> 00:18:42,460
‫Jadi mari kita coba sekarang.

323
00:18:42,460 --> 00:18:46,423
‫Dan user ini disini adalah user biasa, jadi kita buat

324
00:18:47,780 --> 00:18:49,150
‫saja dia,

325
00:18:49,150 --> 00:18:50,813
‫ingat dengan nama J.

326
00:18:51,920 --> 00:18:55,100
‫Jadi mari kita lihat Kompas.

327
00:18:56,900 --> 00:19:00,870
‫Jadi itu pengguna biasa, dengan nama J.

328
00:19:00,870 --> 00:19:02,450
‫Jadi sekarang mari

329
00:19:02,450 --> 00:19:05,160
‫perbarui nama, dan juga coba perbarui

330
00:19:05,160 --> 00:19:07,460
‫peran, yang lagi-lagi tidak diperbolehkan.

331
00:19:07,460 --> 00:19:11,090
‫Tetapi untuk melihat apakah kode kita berfungsi, mari kita coba.

332
00:19:11,090 --> 00:19:14,470
‫Jadi sudah ada namanya, dan katakanlah kami

333
00:19:14,470 --> 00:19:15,970
‫adalah pengguna jahat

334
00:19:15,970 --> 00:19:19,313
‫yang mencoba mengubah peran kami menjadi admin.

335
00:19:20,620 --> 00:19:23,150
‫Jadi, saya rasa semuanya benar,

336
00:19:23,150 --> 00:19:25,190
‫jadi mari kita kirim

337
00:19:25,190 --> 00:19:28,520
‫ini sekarang, dan memang inilah objek yang diperbarui.

338
00:19:28,520 --> 00:19:32,150
‫Jadi kami mendapatkan nama baru kami, yaitu Jonas Schmedtmann,

339
00:19:32,150 --> 00:19:35,250
‫dan kemudian peran, yang masih pengguna.

340
00:19:35,250 --> 00:19:37,913
‫Itu tidak memperbarui peran ke admin.

341
00:19:39,460 --> 00:19:42,380
‫Sempurna. Itulah yang kami inginkan.

342
00:19:42,380 --> 00:19:46,230
‫Jadi, simpan ini dan mari kita kembali dan sebenarnya dengan

343
00:19:46,230 --> 00:19:49,513
‫ini kita baru saja menyelesaikan video ini.

344
00:19:50,590 --> 00:19:53,770
‫Selanjutnya, kami kemudian akan menerapkan fungsi

345
00:19:53,770 --> 00:19:55,913
‫menghapus pengguna saat ini.

346
00:19:56,890 --> 00:20:00,730
‫Jadi kami bekerja untuk memperbarui, selanjutnya kami ingin mengizinkan pengguna untuk

347
00:20:00,730 --> 00:20:03,970
‫pada dasarnya menghapus dirinya sendiri ketika dia tidak lagi

348
00:20:03,970 --> 00:20:06,143
‫ingin menjadi bagian dari aplikasi kami.

