﻿1
00:00:01,160 --> 00:00:03,130
‫-: Jadi sebelumnya, kami

2
00:00:03,130 --> 00:00:05,420
‫telah menerapkan fungsi pendaftaran sederhana, tetapi

3
00:00:05,420 --> 00:00:06,490
‫dalam kuliah

4
00:00:06,490 --> 00:00:08,760
‫ini, kami sebenarnya juga akan mencatat

5
00:00:08,760 --> 00:00:11,700
‫pengguna dalam membuat proses pendaftaran yang lebih nyata.

6
00:00:11,700 --> 00:00:13,830
‫Jadi mulai dari kuliah ini,

7
00:00:13,830 --> 00:00:16,760
‫kami akan benar-benar mulai menerapkan otentikasi kami, dan

8
00:00:16,760 --> 00:00:19,683
‫di sinilah hal itu menjadi sangat serius.

9
00:00:21,230 --> 00:00:23,210
‫Oleh karena itu, sebelum kita mulai,

10
00:00:23,210 --> 00:00:25,150
‫saya ingin memberi Anda peringatan di

11
00:00:25,150 --> 00:00:28,740
‫sini, jadi otentikasi sangat sulit dilakukan dengan benar dan banyak tutorial

12
00:00:28,740 --> 00:00:31,330
‫di luar sana yang akan Anda temukan ketika

13
00:00:31,330 --> 00:00:32,970
‫Anda mencari otentikasi dengan

14
00:00:32,970 --> 00:00:35,492
‫Node.js seperti itu. js dan

15
00:00:35,492 --> 00:00:38,480
‫Express, banyak dari ini membuat banyak kesalahan

16
00:00:38,480 --> 00:00:42,220
‫serius dan terlalu menyederhanakan hal-hal yang seharusnya tidak disederhanakan.

17
00:00:42,220 --> 00:00:45,270
‫Baiklah, ini bukan untuk mengatakan bahwa semua tutorial

18
00:00:45,270 --> 00:00:46,740
‫di luar

19
00:00:46,740 --> 00:00:48,500
‫sana buruk, baiklah, atau

20
00:00:48,500 --> 00:00:52,400
‫itu tidak berguna atau semacamnya, tetapi saya benar-benar menghabiskan waktu

21
00:00:52,400 --> 00:00:54,670
‫berminggu-minggu untuk meneliti semua praktik

22
00:00:54,670 --> 00:00:56,410
‫terbaik dan menyempurnakan serta

23
00:00:56,410 --> 00:00:59,550
‫meningkatkan kode saya, untuk membuat bagian otentikasi ini

24
00:00:59,550 --> 00:01:02,000
‫yang kami Kami akan mulai menerapkannya

25
00:01:02,000 --> 00:01:05,228
‫sebaik mungkin, untuk pemula seperti Anda, baiklah, dan

26
00:01:05,228 --> 00:01:08,950
‫itu karena kami harus benar-benar ekstra hati-hati saat menulis

27
00:01:08,950 --> 00:01:12,730
‫bagian aplikasi ini, karena ingat, data pengguna kami dipertaruhkan di

28
00:01:12,730 --> 00:01:15,650
‫sini , dan kepercayaan pada perusahaan yang

29
00:01:15,650 --> 00:01:17,200
‫menjalankan aplikasi, juga

30
00:01:17,200 --> 00:01:19,080
‫dipertaruhkan, dan karenanya menerapkan autentikasi,

31
00:01:19,080 --> 00:01:21,200
‫adalah tanggung jawab nyata di

32
00:01:21,200 --> 00:01:24,360
‫mana Anda tidak boleh membuat kesalahan sama sekali.

33
00:01:24,360 --> 00:01:25,980
‫Sekarang ada beberapa perpustakaan

34
00:01:25,980 --> 00:01:28,470
‫di luar sana yang dapat membantu

35
00:01:28,470 --> 00:01:31,360
‫kami menerapkan otentikasi dan otorisasi dan yang paling

36
00:01:31,360 --> 00:01:33,130
‫terkenal disebut Paspor, tetapi

37
00:01:33,130 --> 00:01:34,740
‫bahkan perpustakaan seperti

38
00:01:34,740 --> 00:01:37,470
‫itu tidak mengambil semua pekerjaan dan semua

39
00:01:37,470 --> 00:01:39,510
‫tanggung jawab dari Anda, oke.

40
00:01:39,510 --> 00:01:40,630
‫Sekarang dalam

41
00:01:40,630 --> 00:01:42,810
‫kasus ini di sini, kita sebenarnya

42
00:01:42,810 --> 00:01:46,380
‫akan menerapkan seluruh logika perlindungan dan otorisasi login sendiri, kecuali

43
00:01:46,380 --> 00:01:49,910
‫tentu saja untuk implementasi token web Jason yang kita

44
00:01:49,910 --> 00:01:52,310
‫bicarakan di video terakhir itu sendiri.

45
00:01:52,310 --> 00:01:54,820
‫Oke, jadi semua penandatanganan dan verifikasi

46
00:01:54,820 --> 00:01:58,170
‫semua itu, kita akan pergi ke perpustakaan WJT tapi

47
00:01:58,170 --> 00:02:00,450
‫sisanya, kita akan menerapkan diri

48
00:02:00,450 --> 00:02:02,920
‫kita sendiri selama beberapa kuliah berikutnya.

49
00:02:02,920 --> 00:02:04,430
‫Sekarang seperti yang saya

50
00:02:04,430 --> 00:02:07,830
‫sebutkan sebelumnya, kami sudah memiliki fungsi pendaftaran kami di

51
00:02:07,830 --> 00:02:09,240
‫sini, benar, tetapi

52
00:02:09,240 --> 00:02:11,500
‫sekarang, yang dilakukannya hanyalah membuat pengguna

53
00:02:11,500 --> 00:02:14,010
‫baru dan kemudian mengirimkannya kembali ke klien.

54
00:02:14,010 --> 00:02:17,410
‫Sekarang tidak lama setelah menyelesaikan perekaman kursus ini,

55
00:02:17,410 --> 00:02:18,640
‫saya

56
00:02:18,640 --> 00:02:21,239
‫benar-benar memperhatikan bahwa ada kelemahan

57
00:02:21,239 --> 00:02:23,920
‫keamanan yang sangat serius dalam cara

58
00:02:23,920 --> 00:02:26,630
‫mendaftarkan pengguna ini, jadi pada dasarnya

59
00:02:26,630 --> 00:02:30,640
‫masalahnya adalah saat ini, kami membuat pengguna baru menggunakan

60
00:02:30,640 --> 00:02:32,850
‫semua data yang masuk. badan

61
00:02:32,850 --> 00:02:36,350
‫kan, jadi masalahnya di sini adalah seperti ini,

62
00:02:36,350 --> 00:02:40,960
‫siapa pun dapat menentukan peran sebagai admin kan, jadi pada dasarnya,

63
00:02:40,960 --> 00:02:45,360
‫semua orang sekarang dapat dengan mudah mendaftar sebagai admin ke

64
00:02:45,360 --> 00:02:46,670
‫dalam aplikasi kita,

65
00:02:46,670 --> 00:02:49,620
‫dan itu tentu saja tidak kita butuhkan.

66
00:02:49,620 --> 00:02:53,090
‫Jadi sekali lagi ini adalah kelemahan keamanan yang serius

67
00:02:53,090 --> 00:02:55,860
‫dan kami tentu saja harus memperbaikinya dan

68
00:02:55,860 --> 00:02:58,420
‫untuk memperbaikinya sebenarnya cukup sederhana.

69
00:02:58,420 --> 00:03:01,150
‫Jadi yang Anda butuhkan sebagai ganti baris kode ini,

70
00:03:01,150 --> 00:03:02,670
‫yang dipilih di sini

71
00:03:02,670 --> 00:03:06,370
‫adalah potongan kode yang baru saja saya taruh di sini di layar.

72
00:03:06,370 --> 00:03:07,460
‫Oke.

73
00:03:07,460 --> 00:03:10,900
‫Jadi sekali lagi, silakan dan hapus baris kode yang saat ini

74
00:03:10,900 --> 00:03:12,720
‫dipilih di sini dan ganti

75
00:03:12,720 --> 00:03:15,320
‫dengan kode yang baru saja saya taruh di

76
00:03:15,320 --> 00:03:16,690
‫sini di layar.

77
00:03:16,690 --> 00:03:19,070
‫Sekarang apa sebenarnya perbedaan besar di

78
00:03:19,070 --> 00:03:21,010
‫sini, nah, dengan kode

79
00:03:21,010 --> 00:03:24,580
‫baru ini, pada dasarnya kami hanya mengizinkan data yang sebenarnya

80
00:03:24,580 --> 00:03:26,550
‫kami perlukan untuk dimasukkan ke

81
00:03:26,550 --> 00:03:30,370
‫dalam pengguna baru jadi hanya nama, E-mail dan kemudian kata sandi.

82
00:03:30,370 --> 00:03:34,370
‫Jadi sekarang, bahkan jika pengguna mencoba memasukkan peran secara manual,

83
00:03:34,370 --> 00:03:37,030
‫kami tidak akan menyimpannya ke pengguna baru,

84
00:03:37,030 --> 00:03:38,750
‫dan hal yang sama

85
00:03:38,750 --> 00:03:41,170
‫untuk hal lain, seperti misalnya, foto.

86
00:03:41,170 --> 00:03:45,120
‫Jadi ini adalah perbaikan cepat dan mudah untuk masalah itu.

87
00:03:45,120 --> 00:03:45,983
‫Sekarang

88
00:03:45,983 --> 00:03:49,890
‫apa yang akan dilakukan, adalah bahwa kita sebenarnya tidak dapat lagi

89
00:03:49,890 --> 00:03:52,570
‫mendaftar sebagai admin, jadi jika kita perlu menambahkan

90
00:03:52,570 --> 00:03:53,680
‫administrator baru ke

91
00:03:53,680 --> 00:03:57,030
‫sistem kita, kita dapat dengan mudah membuat pengguna baru secara

92
00:03:57,030 --> 00:03:59,610
‫normal dan kemudian masuk ke Kompas MongoDB,

93
00:03:59,610 --> 00:04:02,440
‫dan pada dasarnya mengedit peran itu di sana.

94
00:04:02,440 --> 00:04:03,930
‫Jadi edit dari

95
00:04:03,930 --> 00:04:06,470
‫pengguna ke admin secara manual, oke.

96
00:04:06,470 --> 00:04:09,070
‫Tentu saja kami juga dapat menentukan rute

97
00:04:09,070 --> 00:04:10,910
‫khusus untuk hanya membuat

98
00:04:10,910 --> 00:04:13,610
‫admin, tetapi itu akan menjadi terlalu berlebihan.

99
00:04:13,610 --> 00:04:16,210
‫Oke, jadi sekarang mari kita lanjutkan.

100
00:04:16,210 --> 00:04:18,820
‫Perhatikan saja bahwa kode di sisa video

101
00:04:18,820 --> 00:04:20,790
‫dan semua video dalam kursus

102
00:04:20,790 --> 00:04:25,090
‫ini tentu saja masih versi lama yang salah ini, baiklah, tetapi sebenarnya

103
00:04:25,090 --> 00:04:27,270
‫dalam kode terakhir yang ada di

104
00:04:27,270 --> 00:04:29,240
‫repositori GitHub, saya sudah

105
00:04:29,240 --> 00:04:32,773
‫memperbaikinya dan kami memiliki kode yang benar di sana.

106
00:04:33,610 --> 00:04:37,770
‫Lagi pula, biasanya ketika kita mendaftar untuk aplikasi web apa pun,

107
00:04:37,770 --> 00:04:41,060
‫maka Anda juga masuk secara otomatis, kan, jadi mari

108
00:04:41,060 --> 00:04:43,500
‫kita segera menerapkannya di sini.

109
00:04:43,500 --> 00:04:45,350
‫Jadi login pengguna baru, segera

110
00:04:45,350 --> 00:04:48,120
‫setelah dia mendaftar, oke, dan ingat dari

111
00:04:48,120 --> 00:04:50,090
‫kuliah sebelumnya, cara kerjanya, yang

112
00:04:50,090 --> 00:04:51,680
‫perlu kita lakukan hanyalah

113
00:04:51,680 --> 00:04:53,440
‫menandatangani token web Jason

114
00:04:53,440 --> 00:04:55,350
‫dan kemudian mengirimkannya kembali ke

115
00:04:55,350 --> 00:04:58,490
‫pengguna , oke, tapi sekarang pertama-tama kita instal

116
00:04:58,490 --> 00:05:01,270
‫paket MPM yang akan kita gunakan untuk

117
00:05:01,270 --> 00:05:03,350
‫semua yang berhubungan dengan token

118
00:05:03,350 --> 00:05:04,893
‫web Jason.

119
00:05:06,160 --> 00:05:08,180
‫Jadi di terminal kami yang

120
00:05:08,180 --> 00:05:12,660
‫lain, katakanlah menginstal MPM, token web Jason, jadi semua ini bersama-sama seperti

121
00:05:12,660 --> 00:05:14,370
‫ini dan itu kemudian

122
00:05:16,240 --> 00:05:18,630
‫harus menginstal paket ini dan mari

123
00:05:18,630 --> 00:05:19,790
‫kita lanjutkan

124
00:05:19,790 --> 00:05:22,211
‫dan lihat di GitHub, hanya untuk melihat

125
00:05:22,211 --> 00:05:23,950
‫dokumentasi dan mari lakukan itu

126
00:05:28,000 --> 00:05:29,380
‫di sini, setidaknya

127
00:05:29,380 --> 00:05:31,830
‫kita tidak lagi membutuhkan yang ini di

128
00:05:33,370 --> 00:05:38,370
‫sini untuk saat ini, jadi ini akan membawa kita ke halaman di MPM,

129
00:05:38,810 --> 00:05:40,300
‫dan Anda melihat seberapa

130
00:05:40,300 --> 00:05:42,170
‫populer paket ini sebenarnya, jadi

131
00:05:42,170 --> 00:05:45,100
‫kami memiliki 2. 3 juta unduhan

132
00:05:45,100 --> 00:05:47,930
‫mingguan, jadi itu benar-benar satu ton unduhan dan

133
00:05:47,930 --> 00:05:50,730
‫kami juga dapat melihat dokumentasinya di sini,

134
00:05:50,730 --> 00:05:53,540
‫tetapi saya pribadi lebih suka melakukannya di GitHub.

135
00:05:53,540 --> 00:05:56,090
‫Saya pikir itu terlihat jauh lebih bersih

136
00:05:56,090 --> 00:05:58,240
‫di sini, dan saya sudah

137
00:05:58,240 --> 00:06:02,410
‫terbiasa pada saat ini, jadi saya biasanya hanya melihatnya di sini, oke.

138
00:06:02,410 --> 00:06:04,690
‫Bagaimanapun, fungsi pertama yang akan kita

139
00:06:04,690 --> 00:06:08,070
‫gunakan dengan JWT di sini adalah tanda, oke, jadi pada

140
00:06:08,070 --> 00:06:11,320
‫dasarnya untuk membuat token baru, dan untuk itu tentu

141
00:06:11,320 --> 00:06:13,330
‫saja kita membutuhkan payload, kita

142
00:06:13,330 --> 00:06:16,080
‫memerlukan kunci sehingga rahasia pribadi yang saya sebutkan

143
00:06:16,080 --> 00:06:17,280
‫sebelum itu

144
00:06:17,280 --> 00:06:19,750
‫hanya disimpan di server kami dan kami

145
00:06:19,750 --> 00:06:21,607
‫perlu menandatangani token dan kemudian

146
00:06:21,607 --> 00:06:23,830
‫kami dapat meneruskan beberapa opsi dan

147
00:06:23,830 --> 00:06:26,040
‫kami akan melakukan semua itu dalam

148
00:06:26,040 --> 00:06:29,270
‫sedetik, saya hanya ingin menunjukkan fungsi lain yang kami

149
00:06:29,270 --> 00:06:32,040
‫miliki di sini, dan bahwa kami benar-benar memiliki

150
00:06:32,040 --> 00:06:34,149
‫banyak pilihan di sini, misalnya kedaluwarsa,

151
00:06:34,149 --> 00:06:36,353
‫yang akan kita gunakan juga, jadi

152
00:06:38,070 --> 00:06:39,830
‫semua hal ini dan

153
00:06:39,830 --> 00:06:41,600
‫kemudian kita harus memverifikasi.

154
00:06:41,600 --> 00:06:44,200
‫Jadi kami juga berbicara tentang proses verifikasi

155
00:06:44,200 --> 00:06:47,700
‫dan itu pada dasarnya diimplementasikan dalam fungsi ini, oke, dan

156
00:06:47,700 --> 00:06:49,490
‫inilah yang akan kami gunakan,

157
00:06:49,490 --> 00:06:52,740
‫saat login pengguna, oke, dan hanya itu yang ada,

158
00:06:52,740 --> 00:06:54,610
‫jadi Anda memiliki semua opsi

159
00:06:54,610 --> 00:06:56,858
‫yang berbeda ini di sini, oke,

160
00:06:56,858 --> 00:06:58,400
‫Anda juga telah memecahkan

161
00:06:58,400 --> 00:07:01,140
‫kode tetapi yang itu tidak terlalu penting, oke,

162
00:07:01,140 --> 00:07:03,990
‫jadi Anda melihat bahwa paket ini benar-benar hanya

163
00:07:03,990 --> 00:07:04,980
‫mencakup dua

164
00:07:04,980 --> 00:07:07,870
‫fungsi yang telah kita bahas di video sebelumnya.

165
00:07:07,870 --> 00:07:11,683
‫Jadi menandatangani dan kemudian memverifikasi, oke.

166
00:07:12,590 --> 00:07:15,060
‫Jadi mari kembali ke sini

167
00:07:15,060 --> 00:07:18,193
‫dan mulai menggunakan paket token web Jason.

168
00:07:19,830 --> 00:07:21,363
‫Jadi mari kita

169
00:07:24,380 --> 00:07:26,800
‫impor di sini, dan biasanya hanya

170
00:07:31,040 --> 00:07:33,920
‫disebut JWT dan memerlukan token web Jason.

171
00:07:33,920 --> 00:07:37,053
‫Oke, jadi mari kita buat token kita di

172
00:07:39,290 --> 00:07:40,460
‫sini, oke, dan

173
00:07:40,460 --> 00:07:43,710
‫saya ingin menyebutnya seperti ini jadi token saja, oke,

174
00:07:43,710 --> 00:07:48,080
‫lalu tanda titik JWT, dan sekarang yang pertama adalah payload, dan ini

175
00:07:48,080 --> 00:07:50,460
‫pada dasarnya adalah objek untuk semua

176
00:07:50,460 --> 00:07:52,650
‫data yang akan kita simpan

177
00:07:52,650 --> 00:07:55,260
‫di dalam token, dan dalam hal ini,

178
00:07:55,260 --> 00:07:56,093
‫kita

179
00:07:56,093 --> 00:07:59,410
‫benar-benar hanya menginginkan ID pengguna, oke, jadi tidak ada

180
00:07:59,410 --> 00:08:02,210
‫yang gila di sini, tidak banyak data

181
00:08:02,210 --> 00:08:04,150
‫yang tidak terlalu penting.

182
00:08:04,150 --> 00:08:06,890
‫Jadi kita katakan bahwa ID itu

183
00:08:06,890 --> 00:08:09,550
‫dan kemudian kita hanya mendapatkan ID

184
00:08:09,550 --> 00:08:12,830
‫dari pengguna baru yang baru saja dibuat, oke,

185
00:08:12,830 --> 00:08:17,530
‫jadi pengguna baru titik dan kemudian ingat bahwa di MonogoDB, ID

186
00:08:17,530 --> 00:08:21,460
‫sebenarnya disebut ID garis bawah, baiklah, dan begitu adalah objek

187
00:08:21,460 --> 00:08:23,760
‫yang merupakan data, payload,

188
00:08:23,760 --> 00:08:27,083
‫yang ingin kita masukkan ke dalam JWT kita.

189
00:08:27,920 --> 00:08:30,820
‫Selanjutnya, kita perlu rahasianya, oke, jadi pada

190
00:08:30,820 --> 00:08:32,090
‫dasarnya sebuah string

191
00:08:33,580 --> 00:08:35,350
‫untuk sebuah rahasia, baiklah,

192
00:08:35,350 --> 00:08:38,530
‫tentu saja ini mengerikan, baiklah, ini hanya semacam

193
00:08:38,530 --> 00:08:40,340
‫penampung karena sebenarnya, file

194
00:08:40,340 --> 00:08:42,770
‫konfigurasi kita adalah tempat yang sempurna

195
00:08:42,770 --> 00:08:46,720
‫untuk menyimpan data rahasia semacam ini, jadi seperti kata sandi

196
00:08:46,720 --> 00:08:49,460
‫misalnya, dan mari kita tambahkan dan edit

197
00:08:49,460 --> 00:08:53,633
‫di sini, oke, jadi sebut saja JWT, rahasia, dan tentu saja

198
00:08:55,720 --> 00:09:00,070
‫nama yang kami berikan di sini, tidak terlalu penting tetapi yang

199
00:09:00,070 --> 00:09:02,220
‫penting adalah rahasia yang kami

200
00:09:02,220 --> 00:09:03,430
‫tentukan

201
00:09:03,430 --> 00:09:06,920
‫di sini, baiklah, karena menggunakan enkripsi standar HSA 256

202
00:09:06,920 --> 00:09:11,920
‫untuk tanda tangan, rahasianya setidaknya harus tiga puluh dua karakter, baiklah, tetapi semakin

203
00:09:11,940 --> 00:09:15,320
‫lama semakin baik sebenarnya dan di sinilah banyak tutorial

204
00:09:15,320 --> 00:09:17,880
‫di luar sana gagal, beberapa dari mereka

205
00:09:17,880 --> 00:09:19,847
‫hanya meletakkan string yang sangat

206
00:09:19,847 --> 00:09:22,240
‫pendek di sini, tapi itu tidak

207
00:09:22,240 --> 00:09:25,280
‫ideal lagi, jadi untuk enkripsi tanda tangan terbaik,

208
00:09:25,280 --> 00:09:27,010
‫sekali lagi Anda setidaknya

209
00:09:27,010 --> 00:09:29,290
‫harus menggunakan tiga puluh dua karakter,

210
00:09:29,290 --> 00:09:32,940
‫jadi saya akan membuat rahasia saya di sini sekarang tapi

211
00:09:32,940 --> 00:09:34,584
‫kamu harus benar-benar menggunakan

212
00:09:34,584 --> 00:09:37,763
‫yang lain, oke, tolong jangan gunakan sa saya

213
00:09:37,763 --> 00:09:40,490
‫satu seperti yang saya lakukan karena itu

214
00:09:40,490 --> 00:09:42,590
‫bisa menjadi masalah keamanan untuk

215
00:09:42,590 --> 00:09:44,180
‫aplikasi Anda, oke,

216
00:09:44,180 --> 00:09:47,460
‫selalu gunakan rahasia unik untuk aplikasi Anda dan

217
00:09:47,460 --> 00:09:49,400
‫tidak pernah sama, baiklah, dan

218
00:09:49,400 --> 00:09:52,100
‫terutama bukan yang dari orang lain jadi

219
00:09:52,100 --> 00:09:54,883
‫jelas bukan yang saya sedang mengetik sekarang.

220
00:09:56,750 --> 00:09:57,820
‫Jadi ini bisa

221
00:09:57,820 --> 00:10:00,160
‫apa saja, tidak harus karakter atau hal

222
00:10:00,160 --> 00:10:02,390
‫aneh, saya lebih suka menggunakan frasa

223
00:10:02,390 --> 00:10:04,443
‫seperti ini, rahasia saya yang

224
00:10:07,860 --> 00:10:10,903
‫sangat aman dan sangat panjang, jadi apa yang terjadi

225
00:10:11,990 --> 00:10:13,363
‫di sini, bagaimanapun, ini

226
00:10:14,690 --> 00:10:17,670
‫harus tiga puluh dua karakter dan seterusnya ini

227
00:10:17,670 --> 00:10:18,730
‫yang

228
00:10:18,730 --> 00:10:21,400
‫akan kita gunakan untuk token web Jason,

229
00:10:21,400 --> 00:10:24,193
‫tapi sekali lagi tolong gunakan yang lain, oke.

230
00:10:25,489 --> 00:10:29,290
‫Bagaimanapun, mari kembali ke pengontrol otentikasi di sini, dan

231
00:10:29,290 --> 00:10:30,733
‫sekarang benar-benar menggunakannya.

232
00:10:31,810 --> 00:10:34,970
‫Jadi ingat variabel lingkungan

233
00:10:34,970 --> 00:10:39,913
‫adalah proses dot end dot rahasia JWT,

234
00:10:41,100 --> 00:10:42,100
‫oke.

235
00:10:42,100 --> 00:10:44,490
‫Jadi pada titik ini, kami memiliki muatan

236
00:10:44,490 --> 00:10:46,320
‫dan kami memiliki rahasianya.

237
00:10:46,320 --> 00:10:49,400
‫Header token sebenarnya akan dibuat secara otomatis tetapi sekarang

238
00:10:49,400 --> 00:10:50,670
‫yang juga

239
00:10:50,670 --> 00:10:52,390
‫dapat kita lakukan adalah meneruskan

240
00:10:52,390 --> 00:10:54,470
‫beberapa opsi, dan opsi yang

241
00:10:54,470 --> 00:10:57,390
‫akan saya berikan adalah kapan JWT harus kedaluwarsa.

242
00:10:57,390 --> 00:10:59,600
‫Jadi ini berarti bahwa setelah

243
00:10:59,600 --> 00:11:01,240
‫waktu yang akan kita

244
00:11:01,240 --> 00:11:03,110
‫lewati di sini, token

245
00:11:03,110 --> 00:11:04,240
‫web

246
00:11:04,240 --> 00:11:06,890
‫Jason tidak lagi valid, bahkan jika itu

247
00:11:06,890 --> 00:11:08,060
‫akan diverifikasi dengan

248
00:11:08,060 --> 00:11:10,570
‫benar, baiklah, jadi ini pada dasarnya

249
00:11:10,570 --> 00:11:12,670
‫untuk logout pengguna setelah jangka

250
00:11:12,670 --> 00:11:15,320
‫waktu tertentu hanya sebagai tindakan pengamanan, oke.

251
00:11:15,320 --> 00:11:19,500
‫Jadi mari kita definisikan waktu kedaluwarsa itu juga sebagai

252
00:11:19,500 --> 00:11:21,493
‫variabel konfigurasi di sini,

253
00:11:23,320 --> 00:11:28,320
‫jadi JWT kedaluwarsa dan di sini tentu saja, Anda dapat menggunakan

254
00:11:28,360 --> 00:11:30,536
‫waktu yang sama seperti yang

255
00:11:30,536 --> 00:11:31,950
‫saya berikan.

256
00:11:31,950 --> 00:11:33,630
‫Jadi kita dapat menggunakan

257
00:11:33,630 --> 00:11:36,170
‫string khusus seperti misalnya 90D dan algoritma

258
00:11:36,170 --> 00:11:38,807
‫penandatanganan akan secara otomatis mengetahui bahwa ini

259
00:11:38,807 --> 00:11:42,350
‫berarti sembilan puluh hari, oke, Anda juga dapat menggunakan

260
00:11:42,350 --> 00:11:47,350
‫seperti sepuluh jam atau lima menit atau tiga detik atau sesuatu seperti ini,

261
00:11:47,360 --> 00:11:49,720
‫atau sembarang angka , yang kemudian

262
00:11:49,720 --> 00:11:50,800
‫akan diperlakukan

263
00:11:50,800 --> 00:11:53,330
‫sebagai milidetik tetapi saya pikir yang terbaik

264
00:11:53,330 --> 00:11:55,820
‫adalah menggunakan sembilan puluh atau sesuatu

265
00:11:55,820 --> 00:11:59,350
‫D, jadi dalam kasus ini, sembilan puluh hari, baiklah,

266
00:11:59,350 --> 00:12:01,120
‫dan sekali lagi, setelah

267
00:12:01,120 --> 00:12:03,860
‫sembilan puluh hari, JWT tidak akan lagi

268
00:12:03,860 --> 00:12:07,770
‫valid, bahkan jika tanda tangan itu benar dan semuanya sah.

269
00:12:07,770 --> 00:12:11,503
‫Oke, jadi sekali lagi seperti tindakan keamanan tambahan, oke,

270
00:12:12,880 --> 00:12:13,713
‫jadi

271
00:12:13,713 --> 00:12:17,180
‫opsi ini seperti biasa, kami meneruskannya sebagai objek

272
00:12:17,180 --> 00:12:19,820
‫dan kemudian mari kita tentukan kedaluwarsa

273
00:12:19,820 --> 00:12:24,640
‫di, jadi kedaluwarsa dan kemudian proses titik akhir dan kemudian JWT

274
00:12:26,120 --> 00:12:31,120
‫kedaluwarsa, oke, dan ini di sini kemudian akan menambahkan beberapa data

275
00:12:32,050 --> 00:12:34,190
‫tambahan ke payload, tapi itu

276
00:12:34,190 --> 00:12:35,530
‫tentu saja

277
00:12:35,530 --> 00:12:37,480
‫tidak masalah sama sekali.

278
00:12:38,410 --> 00:12:40,220
‫Jadi kita baru saja membuat token,

279
00:12:40,220 --> 00:12:41,500
‫sekarang yang perlu

280
00:12:41,500 --> 00:12:43,463
‫kita lakukan adalah mengirimkannya ke klien.

281
00:12:44,910 --> 00:12:48,240
‫Jadi mari kita taruh di sini sebelum pengguna

282
00:12:48,240 --> 00:12:50,420
‫benar-benar dan kemudian itu sebenarnya.

283
00:12:50,420 --> 00:12:53,350
‫Hanya itu yang perlu kita lakukan untuk memasukkan

284
00:12:53,350 --> 00:12:54,840
‫pengguna baru, karena saat

285
00:12:54,840 --> 00:12:56,250
‫ini kami tidak

286
00:12:56,250 --> 00:12:59,530
‫memeriksa apakah ada kata sandi yang benar atau apakah

287
00:12:59,530 --> 00:13:00,970
‫pengguna benar-benar ada di

288
00:13:00,970 --> 00:13:02,890
‫database karena di sini dalam

289
00:13:02,890 --> 00:13:03,840
‫kasus

290
00:13:03,840 --> 00:13:05,880
‫ini, pengguna benar-benar baru saja

291
00:13:05,880 --> 00:13:08,070
‫dibuat, dan jadi langsung saja kita

292
00:13:08,070 --> 00:13:10,010
‫login pengguna ke dalam aplikasi

293
00:13:10,010 --> 00:13:12,780
‫dengan mengirimkan token, oke, dan penggunaan klien kemudian

294
00:13:12,780 --> 00:13:15,430
‫dalam beberapa hal menyimpan token itu, seperti

295
00:13:15,430 --> 00:13:16,760
‫yang kita bicarakan

296
00:13:16,760 --> 00:13:21,370
‫sebelumnya di kuliah sebelumnya, oke, jadi mari kita simpan di sini, dan mari

297
00:13:21,370 --> 00:13:24,160
‫kita coba, oke, jadi mari kita alamat lama

298
00:13:24,160 --> 00:13:27,040
‫saya di sini, hello@jonas. io, mari kita kirim,

299
00:13:27,040 --> 00:13:29,210
‫dan mari kita tunggu dan memang,

300
00:13:29,210 --> 00:13:32,910
‫ini adalah token web Jason kami, jadi selamat, Anda baru saja

301
00:13:32,910 --> 00:13:35,050
‫membuat token web Jason pertama Anda

302
00:13:35,050 --> 00:13:37,490
‫yang akan terlihat sedikit seperti ini, dan

303
00:13:37,490 --> 00:13:39,760
‫tentu saja tidak akan terlihat persis seperti

304
00:13:39,760 --> 00:13:42,310
‫aslinya. sama, karena rahasia kita juga tidak

305
00:13:42,310 --> 00:13:45,360
‫sama, kan, dan sekarang yang ingin saya tunjukkan kepada

306
00:13:45,360 --> 00:13:46,770
‫Anda, adalah debugger

307
00:13:46,770 --> 00:13:48,810
‫JWT, yang saya tunjukkan kepada Anda

308
00:13:48,810 --> 00:13:50,730
‫sebagai tangkapan layar sebelumnya di

309
00:13:50,730 --> 00:13:52,010
‫video terakhir.

310
00:13:52,010 --> 00:13:54,140
‫Jadi mari kita menyalin token

311
00:13:56,050 --> 00:14:00,453
‫ini dan kemudian pergi ke JWT. io, oke, lalu di sini

312
00:14:02,850 --> 00:14:03,683
‫kita

313
00:14:04,540 --> 00:14:06,790
‫memiliki debugger dan jadi mari

314
00:14:06,790 --> 00:14:10,683
‫kita hapus yang ini di sini, dan letakkan milik

315
00:14:12,170 --> 00:14:14,830
‫kita dan segera Anda melihat bahwa

316
00:14:14,830 --> 00:14:17,580
‫tanda tangan kita tidak valid, tapi

317
00:14:17,580 --> 00:14:20,570
‫itu karena fungsi tanda mengedit dua properti

318
00:14:20,570 --> 00:14:22,090
‫ini di sini,

319
00:14:22,090 --> 00:14:25,140
‫karena kita menentukan kedaluwarsa tanggal pada dasarnya.

320
00:14:25,140 --> 00:14:27,600
‫Jadi ini di sini dikeluarkan pada,

321
00:14:27,600 --> 00:14:30,223
‫dan ini adalah waktu kedaluwarsa, oke,

322
00:14:31,450 --> 00:14:35,050
‫jadi jika kita menghapus keduanya dari sini, Anda akan

323
00:14:35,050 --> 00:14:36,350
‫melihat

324
00:14:36,350 --> 00:14:38,620
‫bahwa sekarang, tanda tangan ini

325
00:14:38,620 --> 00:14:42,260
‫benar-benar diverifikasi, oke jadi yang penting untuk diperhatikan di

326
00:14:42,260 --> 00:14:44,815
‫sini, tentu saja tajuknya terlihat oke

327
00:14:44,815 --> 00:14:47,840
‫itu pada dasarnya mudah didekodekan, dan jadi

328
00:14:47,840 --> 00:14:50,820
‫Anda bahwa kami tidak menentukan semua ini,

329
00:14:50,820 --> 00:14:54,530
‫itu adalah paket token web Jason yang melakukannya untuk

330
00:14:54,530 --> 00:14:58,560
‫kami, tetapi di sini sebenarnya adalah muatan yang kami tentukan,

331
00:14:58,560 --> 00:15:00,800
‫jadi jika kita lihat di

332
00:15:00,800 --> 00:15:03,860
‫ID ini, harus sama persis dengan yang kita

333
00:15:03,860 --> 00:15:06,343
‫miliki di tukang pos, jadi berakhir

334
00:15:07,960 --> 00:15:11,493
‫di enam OF, dan memang benar sama persis, oke,

335
00:15:13,600 --> 00:15:16,260
‫jadi dua ini di sini terbuka

336
00:15:16,260 --> 00:15:19,920
‫dan kemudian tanda tangan tentu saja, kita tidak bisa

337
00:15:19,920 --> 00:15:22,930
‫benar-benar mengerti, karena tentu saja rahasia kami

338
00:15:22,930 --> 00:15:26,270
‫hanya itu, ini benar-benar rahasia, baiklah, jadi ini

339
00:15:26,270 --> 00:15:29,600
‫hanya untuk menunjukkan kepada Anda bahwa semuanya berfungsi,

340
00:15:29,600 --> 00:15:31,242
‫dan mari kita tutup

341
00:15:31,242 --> 00:15:35,550
‫ini, dan ya, kami tidak dapat memasukkan pengguna, tapi hanya jika

342
00:15:35,550 --> 00:15:38,050
‫pengguna baru saja mendaftar, karena dalam

343
00:15:38,050 --> 00:15:40,980
‫hal ini, kami tidak perlu memverifikasi email

344
00:15:40,980 --> 00:15:42,290
‫di database, dan

345
00:15:42,290 --> 00:15:44,490
‫juga tidak kata sandi, oke.

346
00:15:44,490 --> 00:15:47,400
‫Jadi melakukan semua itu adalah proses yang jauh lebih

347
00:15:47,400 --> 00:15:49,340
‫kompleks, dan itulah yang sebenarnya

348
00:15:49,340 --> 00:15:50,940
‫akan kita lakukan di

349
00:15:50,940 --> 00:15:53,660
‫kuliah berikutnya, jadi selanjutnya, kita benar-benar akan memasukkan

350
00:15:53,660 --> 00:15:56,543
‫pengguna, berdasarkan alamat email dan kata sandi mereka.

