﻿1
00:00:01,030 --> 00:00:02,580
‫Instruktur: Selamat datang kembali.

2
00:00:02,580 --> 00:00:05,470
‫Jadi, otentikasi dan otorisasi adalah tentang

3
00:00:05,470 --> 00:00:07,680
‫pengguna yang mendaftar, masuk, dan

4
00:00:07,680 --> 00:00:11,040
‫mengakses halaman atau rute, yang kami berikan kepada

5
00:00:11,040 --> 00:00:13,190
‫mereka izin untuk melakukannya.

6
00:00:13,190 --> 00:00:15,570
‫Jadi, ini benar-benar tentang pengguna.

7
00:00:15,570 --> 00:00:18,890
‫Dan, jadi kita harus mulai dengan mengimplementasikan model pengguna di

8
00:00:18,890 --> 00:00:21,260
‫kuliah ini, sehingga di kuliah berikutnya,

9
00:00:21,260 --> 00:00:24,383
‫kita bisa membuat pengguna baru di database kita.

10
00:00:25,990 --> 00:00:28,710
‫Jadi, kembali ke aplikasi kita, mari

11
00:00:28,710 --> 00:00:31,740
‫kita buat file baru untuk model pengguna.

12
00:00:31,740 --> 00:00:34,373
‫Jadi tentu saja di folder model kami,

13
00:00:38,571 --> 00:00:40,890
‫File Baru, userModel. js.

14
00:00:40,890 --> 00:00:42,610
‫Dan seperti sebelumnya, kita

15
00:00:42,610 --> 00:00:44,563
‫mulai dengan membutuhkan paket Mongoose.

16
00:00:52,430 --> 00:00:53,510
‫Baiklah.

17
00:00:53,510 --> 00:00:55,920
‫Dan sekarang, yang perlu kita lakukan adalah membuat

18
00:00:55,920 --> 00:00:57,890
‫skema dan kemudian membuat model darinya.

19
00:00:57,890 --> 00:00:59,670
‫Jadi seperti yang kami lakukan dengan

20
00:00:59,670 --> 00:01:01,750
‫tur, kami akan melakukannya di sini sekarang dengan pengguna.

21
00:01:01,750 --> 00:01:04,140
‫Dan sebenarnya, karena kita sudah melakukannya

22
00:01:04,140 --> 00:01:07,660
‫sebelumnya, saya ingin meninggalkan yang ini sebagai tantangan untuk Anda, oke?

23
00:01:07,660 --> 00:01:10,963
‫Jadi saya ingin Anda membuat skema dengan lima bidang.

24
00:01:12,020 --> 00:01:14,713
‫Jadi, nama, email, lalu foto; yang

25
00:01:16,660 --> 00:01:19,380
‫hanya akan menjadi string, jadi seperti

26
00:01:19,380 --> 00:01:21,063
‫di tur kami.

27
00:01:22,230 --> 00:01:24,223
‫Saya juga ingin bidang untuk kata

28
00:01:25,300 --> 00:01:27,283
‫sandi, dan untuk kata sandiKonfirmasi.

29
00:01:30,230 --> 00:01:31,063
‫Oke?

30
00:01:31,063 --> 00:01:32,330
‫Dan sedikit lebih banyak

31
00:01:32,330 --> 00:01:34,190
‫tentang itu nanti ketika saya memecahkan

32
00:01:34,190 --> 00:01:36,480
‫tantangan ini untuk Anda, tetapi untuk saat ini,

33
00:01:36,480 --> 00:01:38,540
‫saya benar-benar ingin Anda berlatih membuat skema

34
00:01:38,540 --> 00:01:41,770
‫ini sendiri dan kemudian juga membuat model dari skema itu, oke?

35
00:01:41,770 --> 00:01:44,090
‫Dan pada akhirnya, Anda juga dapat mengekspornya.

36
00:01:44,090 --> 00:01:46,350
‫Jadi tolong jeda video pada saat ini, dan saya

37
00:01:46,350 --> 00:01:48,250
‫akan kembali sebentar lagi di sini untuk

38
00:01:48,250 --> 00:01:49,973
‫menyelesaikan tantangan ini untuk Anda.

39
00:01:52,590 --> 00:01:53,480
‫Baiklah.

40
00:01:53,480 --> 00:01:55,030
‫Semoga Anda menyelesaikan tantangan itu.

41
00:01:55,030 --> 00:01:56,690
‫Dan sekarang saya akan menyelesaikannya.

42
00:01:56,690 --> 00:01:59,330
‫Dan jangan khawatir jika tidak terlihat persis sama.

43
00:01:59,330 --> 00:02:02,150
‫Anda cukup mengadaptasinya saat kita melalui video ini.

44
00:02:02,150 --> 00:02:03,563
‫Nah, melalui solusi ini.

45
00:02:05,430 --> 00:02:07,730
‫Jadi, saya akan menyebutnya userSchema.

46
00:02:09,310 --> 00:02:13,107
‫Dan seperti sebelumnya, kita membuat luwak baru. Skema.

47
00:02:15,270 --> 00:02:18,010
‫Dan kemudian ke dalamnya, kita melewati objek skema

48
00:02:18,010 --> 00:02:20,410
‫kita, dan mulai mendefinisikan bidang kita.

49
00:02:20,410 --> 00:02:24,773
‫Jadi, saya ingin nama dengan tipe, tentu saja, String.

50
00:02:28,430 --> 00:02:31,023
‫Dan saya juga ingin itu diperlukan.

51
00:02:32,440 --> 00:02:34,310
‫Jadi, setiap kali pengguna baru

52
00:02:34,310 --> 00:02:37,113
‫dibuat, pada dasarnya dia perlu memberi tahu kami namanya.

53
00:02:37,980 --> 00:02:40,623
‫Jadi, mari kita atur pesan kesalahan di sini juga.

54
00:02:41,617 --> 00:02:46,960
‫"Tolong beri tahu kami namamu! " Baiklah?

55
00:02:46,960 --> 00:02:48,400
‫Jadi itu namanya.

56
00:02:48,400 --> 00:02:50,373
‫Selanjutnya, kami menginginkan email.

57
00:02:51,680 --> 00:02:52,630
‫Baiklah?

58
00:02:52,630 --> 00:02:55,310
‫Jadi ini akan digunakan untuk pengguna untuk masuk

59
00:02:55,310 --> 00:02:58,630
‫dan kami tidak akan membuat properti nama pengguna di sini, oke?

60
00:02:58,630 --> 00:03:01,920
‫Jadi di beberapa aplikasi, Anda akan melihat nama pengguna yang

61
00:03:01,920 --> 00:03:04,500
‫digunakan, tetapi dalam kasus ini, kami ingin

62
00:03:04,500 --> 00:03:08,030
‫membuatnya tetap sederhana di sini dan hanya mengidentifikasi pengguna melalui email.

63
00:03:08,030 --> 00:03:10,803
‫Dan sekali lagi, ini adalah tipe String.

64
00:03:13,150 --> 00:03:14,873
‫Ini juga merupakan bidang wajib.

65
00:03:22,030 --> 00:03:23,883
‫Jadi hanya beberapa pesan kesalahan lagi.

66
00:03:24,780 --> 00:03:28,873
‫Selanjutnya, saya ingin email juga unik, oke?

67
00:03:30,360 --> 00:03:33,320
‫Jadi, unik disetel ke true.

68
00:03:33,320 --> 00:03:35,960
‫Dan itu pada dasarnya karena email

69
00:03:35,960 --> 00:03:39,450
‫ini, tentu saja, adalah pengenal unik dari setiap pengguna, oke?

70
00:03:39,450 --> 00:03:42,920
‫Sekarang secara default, email harus unik, bukan?

71
00:03:42,920 --> 00:03:45,570
‫Tapi mari kita yakin 100% di sini

72
00:03:45,570 --> 00:03:47,000
‫bahwa tidak akan

73
00:03:47,000 --> 00:03:49,740
‫ada akun dengan alamat email yang sama, oke?

74
00:03:49,740 --> 00:03:52,770
‫Sekarang kita juga dapat menentukan opsi tipe skema lain di

75
00:03:52,770 --> 00:03:54,373
‫sini, yaitu huruf kecil.

76
00:03:56,150 --> 00:03:57,100
‫Jadi itu yang baru.

77
00:03:57,100 --> 00:03:58,410
‫Dan itu bukan validator.

78
00:03:58,410 --> 00:04:00,410
‫Semua itu akan dilakukan, pada

79
00:04:00,410 --> 00:04:03,150
‫dasarnya adalah mengubah email menjadi huruf kecil.

80
00:04:03,150 --> 00:04:08,140
‫Jadi jika seseorang mengatakan seperti Jonas@Gmail atau apa pun, maka itu

81
00:04:08,140 --> 00:04:11,260
‫akan diubah semuanya menjadi huruf kecil.

82
00:04:11,260 --> 00:04:12,210
‫Oke?

83
00:04:12,210 --> 00:04:15,380
‫Dan sekarang akhirnya, kami juga ingin benar-benar

84
00:04:15,380 --> 00:04:16,780
‫memvalidasi alamat email.

85
00:04:16,780 --> 00:04:19,300
‫Jadi pada dasarnya menguji apakah

86
00:04:19,300 --> 00:04:23,070
‫email yang diberikan sesuai dengan format email umum, oke?

87
00:04:23,070 --> 00:04:27,710
‫Jadi misalnya lagi jonas@gmail. com akan menjadi email

88
00:04:27,710 --> 00:04:29,250
‫yang valid,

89
00:04:29,250 --> 00:04:32,270
‫tetapi misalnya, seperti ini, tidak akan.

90
00:04:32,270 --> 00:04:33,860
‫Atau seperti ini.

91
00:04:33,860 --> 00:04:36,290
‫Dan untuk itu, pada dasarnya kita perlu membuat

92
00:04:36,290 --> 00:04:37,603
‫validator kita sendiri.

93
00:04:38,650 --> 00:04:41,350
‫Sekarang kita tidak akan membuat validator

94
00:04:41,350 --> 00:04:44,480
‫kita sendiri untuk itu, tetapi kita akan menggunakan

95
00:04:44,480 --> 00:04:47,730
‫paket validator yang saya tunjukkan sebelumnya dari npm, kan?

96
00:04:47,730 --> 00:04:50,520
‫Jadi ingat di sini di tourModel, saya sebenarnya menunjukkan

97
00:04:50,520 --> 00:04:52,770
‫modul ini kepada Anda di sini, tetapi

98
00:04:52,770 --> 00:04:54,620
‫kemudian kami tidak menggunakannya

99
00:04:54,620 --> 00:04:57,270
‫karena itu tidak terlalu berguna dalam kasus kami.

100
00:04:57,270 --> 00:04:59,810
‫Tapi sekarang, ini akan sangat berguna,

101
00:04:59,810 --> 00:05:02,933
‫jadi saya akan menyalinnya di sini, oke, jadi

102
00:05:05,620 --> 00:05:09,180
‫sekarang kita bisa menggunakannya dengan benar di skema kita.

103
00:05:09,180 --> 00:05:12,653
‫Jadi, untuk sekarang membuat validator khusus kami,

104
00:05:13,730 --> 00:05:16,550
‫kami menggunakan validasi, ingat?

105
00:05:16,550 --> 00:05:18,870
‫Dan kemudian kami meneruskan pesan fungsi

106
00:05:18,870 --> 00:05:21,380
‫anti-kesalahan, seperti halnya dengan validator kami yang lain.

107
00:05:21,380 --> 00:05:23,980
‫Dan untuk memeriksa apakah sebuah

108
00:05:23,980 --> 00:05:28,330
‫email valid, yang perlu kita lakukan hanyalah memanggil metode isEmail

109
00:05:29,810 --> 00:05:32,030
‫pada objek validator, oke?

110
00:05:32,030 --> 00:05:34,380
‫Jadi, sekali lagi, berasal dari dokumentasi,

111
00:05:34,380 --> 00:05:38,160
‫yang saya tunjukkan sebelumnya ketika kami pertama kali menggunakan modul ini.

112
00:05:38,160 --> 00:05:40,600
‫Jadi, kapan pun Anda membutuhkan validator khusus,

113
00:05:40,600 --> 00:05:42,960
‫Anda dapat melanjutkan dan memeriksa dokumentasi

114
00:05:42,960 --> 00:05:46,540
‫dan menemukan apakah ada fungsi yang baik untuk kasus penggunaan Anda.

115
00:05:46,540 --> 00:05:49,340
‫Jadi dalam hal ini, itu validator. Email, dan

116
00:05:49,340 --> 00:05:51,230
‫pesan kesalahan kita akan

117
00:05:55,174 --> 00:05:57,540
‫menjadi "email yang valid," oke?

118
00:05:57,540 --> 00:05:59,800
‫Dan di video berikutnya, saat kita akan membuat

119
00:05:59,800 --> 00:06:02,980
‫pengguna dari model ini, tentu saja kita akan menguji semua ini untuk

120
00:06:02,980 --> 00:06:04,463
‫melihat apakah itu berhasil.

121
00:06:05,470 --> 00:06:08,420
‫Selanjutnya, saya juga ingin pengguna pada

122
00:06:08,420 --> 00:06:11,210
‫dasarnya dapat mengunggah foto.

123
00:06:11,210 --> 00:06:13,490
‫Dan kita akan menyimpannya dalam sebuah String.

124
00:06:13,490 --> 00:06:15,600
‫Tapi itu tidak wajib, oke?

125
00:06:15,600 --> 00:06:20,030
‫Jadi foto biasanya opsional di sebagian besar aplikasi web, jadi kita akan melakukan

126
00:06:20,030 --> 00:06:22,050
‫hal yang sama di sini.

127
00:06:22,050 --> 00:06:24,420
‫Jadi, jika pengguna ingin mengunggah foto,

128
00:06:24,420 --> 00:06:27,580
‫maka itu akan disimpan di suatu tempat di sistem

129
00:06:27,580 --> 00:06:30,380
‫file kami dan jalur ke foto itu akan

130
00:06:30,380 --> 00:06:32,910
‫disimpan ke dalam bidang foto ini, oke?

131
00:06:32,910 --> 00:06:34,740
‫Jadi itu mirip dengan apa yang kami miliki di sini.

132
00:06:34,740 --> 00:06:36,373
‫Ingat, kami memiliki,

133
00:06:38,490 --> 00:06:40,340
‫ya, kami memiliki imageCover,

134
00:06:40,340 --> 00:06:42,850
‫dan itu juga merupakan jalur tempat

135
00:06:42,850 --> 00:06:45,100
‫di sistem file kami di

136
00:06:45,100 --> 00:06:47,343
‫mana gambar tersebut sebenarnya diunggah.

137
00:06:49,020 --> 00:06:50,300
‫Baiklah?

138
00:06:50,300 --> 00:06:51,570
‫Jadi itu foto.

139
00:06:51,570 --> 00:06:52,973
‫Dan sekarang kita membutuhkan kata sandi.

140
00:06:57,065 --> 00:07:01,120
‫Dan kata sandinya harus, sekali lagi, bertipe String.

141
00:07:02,410 --> 00:07:03,963
‫Itu tidak benar.

142
00:07:04,850 --> 00:07:08,723
‫Dan kata sandi tentu saja diperlukan, bukan?

143
00:07:09,690 --> 00:07:10,723
‫Benar sekali.

144
00:07:15,347 --> 00:07:16,737
‫"Berikan kata sandi. "

145
00:07:17,750 --> 00:07:20,900
‫Dan kami juga akan menerapkan aturan kata sandi yang

146
00:07:20,900 --> 00:07:23,420
‫sangat sederhana, yaitu kata sandi harus memiliki

147
00:07:23,420 --> 00:07:24,640
‫setidaknya delapan karakter.

148
00:07:24,640 --> 00:07:25,933
‫Jadi bagaimana kita melakukannya?

149
00:07:26,840 --> 00:07:28,920
‫Nah, itu cukup mudah.

150
00:07:28,920 --> 00:07:31,003
‫Yang harus kita lakukan adalah minlength,

151
00:07:32,480 --> 00:07:34,880
‫dan atur ke delapan dalam kasus ini.

152
00:07:34,880 --> 00:07:37,070
‫Dan itu sebenarnya satu-satunya aturan sandi

153
00:07:37,070 --> 00:07:38,650
‫yang akan kami terapkan.

154
00:07:38,650 --> 00:07:41,270
‫Dan banyak aplikasi memiliki semua aturan gila

155
00:07:41,270 --> 00:07:45,300
‫ini seperti setidaknya satu angka dan satu karakter dan satu simbol, tetapi

156
00:07:45,300 --> 00:07:47,450
‫kami tidak akan menerapkan semua itu

157
00:07:47,450 --> 00:07:49,250
‫di sini karena sebenarnya

158
00:07:49,250 --> 00:07:52,140
‫telah ditemukan bahwa itu tidak terlalu efektif, oke?

159
00:07:52,140 --> 00:07:53,750
‫Biasanya kata sandi yang paling

160
00:07:53,750 --> 00:07:55,530
‫aman adalah yang terpanjang, oke,

161
00:07:55,530 --> 00:07:58,550
‫dan bukan yang ini dengan simbol dan karakter gila

162
00:07:58,550 --> 00:07:59,513
‫dan sebagainya.

163
00:08:00,580 --> 00:08:03,610
‫Itu sudah cukup untuk kata sandi untuk saat ini,

164
00:08:03,610 --> 00:08:06,340
‫tetapi kita akan membuat beberapa bidang yang lebih

165
00:08:06,340 --> 00:08:10,190
‫spesifik di sini untuk kata sandi ketika kita mulai menyukai mengelola kata

166
00:08:10,190 --> 00:08:12,020
‫sandi di database, oke?

167
00:08:12,020 --> 00:08:14,403
‫Tapi untuk saat ini, itu sudah cukup di sini.

168
00:08:16,160 --> 00:08:18,407
‫Dan jadi sekarang passwordConfirm.

169
00:08:19,390 --> 00:08:22,230
‫Jadi Anda tahu bagaimana biasanya ketika Anda membuat akun

170
00:08:22,230 --> 00:08:24,450
‫baru di beberapa aplikasi web, Anda

171
00:08:24,450 --> 00:08:28,260
‫selalu harus memasukkan kata sandi Anda dan kemudian mengkonfirmasinya hanya untuk memastikan

172
00:08:28,260 --> 00:08:29,480
‫bahwa mereka sama.

173
00:08:29,480 --> 00:08:31,523
‫Dan itulah gunanya bidang ini.

174
00:08:32,410 --> 00:08:35,573
‫Jadi tentu saja itu juga bertipe String.

175
00:08:36,720 --> 00:08:38,723
‫Dan tentu saja itu juga diperlukan.

176
00:08:45,081 --> 00:08:45,914
‫Oke.

177
00:08:45,914 --> 00:08:48,860
‫Dan lagi, kita akan membuat beberapa properti

178
00:08:48,860 --> 00:08:52,210
‫lagi di sini dalam opsi tipe skema nanti, oke?

179
00:08:52,210 --> 00:08:56,130
‫Khususnya, validator untuk melihat apakah kata sandi

180
00:08:56,130 --> 00:09:00,600
‫konfirmasi sebenarnya sama dengan kata sandi utama, oke?

181
00:09:00,600 --> 00:09:03,220
‫Tetapi untuk saat ini, skema ini sebenarnya sudah

182
00:09:03,220 --> 00:09:06,300
‫cukup, dan ada bidang-bidang yang saya minta untuk Anda buat

183
00:09:07,179 --> 00:09:08,529
‫dalam tantangan ini.

184
00:09:09,980 --> 00:09:12,360
‫Dan sekarang, sebenarnya, yang perlu kita lakukan adalah

185
00:09:12,360 --> 00:09:14,703
‫melanjutkan dan membuat model dari skema.

186
00:09:16,410 --> 00:09:18,930
‫Jadi Pengguna, dengan huruf kapital

187
00:09:18,930 --> 00:09:22,090
‫U, ikuti saja konvensi bahwa variabel

188
00:09:22,090 --> 00:09:24,393
‫model biasanya selalu

189
00:09:25,490 --> 00:09:30,490
‫dengan huruf kapital, lalu luwak. model, dan kemudian berikan nama model, dan

190
00:09:31,400 --> 00:09:33,850
‫tentu saja, kami ingin yang

191
00:09:34,910 --> 00:09:39,150
‫ini disebut Pengguna dan dibuat dari skema pengguna yang kami buat sebelumnya.

192
00:09:39,150 --> 00:09:44,150
‫Dan kemudian modul. ekspor disetel ke Pengguna.

193
00:09:45,300 --> 00:09:46,260
‫Dan itu saja.

194
00:09:46,260 --> 00:09:49,230
‫Itulah UserSchema sederhana kami yang akan memungkinkan kami

195
00:09:49,230 --> 00:09:51,720
‫untuk memulai dengan benar-benar membuat pengguna

196
00:09:51,720 --> 00:09:53,570
‫langsung di video berikutnya.

197
00:09:53,570 --> 00:09:54,963
‫Jadi, sampai jumpa.

