‫Instruktur: Selamat datang kembali.
‫Jadi, otentikasi dan otorisasi adalah tentang
‫pengguna yang mendaftar, masuk, dan
‫mengakses halaman atau rute, yang kami berikan kepada
‫mereka izin untuk melakukannya.
‫Jadi, ini benar-benar tentang pengguna.
‫Dan, jadi kita harus mulai dengan mengimplementasikan model pengguna di
‫kuliah ini, sehingga di kuliah berikutnya,
‫kita bisa membuat pengguna baru di database kita.
‫Jadi, kembali ke aplikasi kita, mari
‫kita buat file baru untuk model pengguna.
‫Jadi tentu saja di folder model kami,
‫File Baru, userModel. js.
‫Dan seperti sebelumnya, kita
‫mulai dengan membutuhkan paket Mongoose.
‫Baiklah.
‫Dan sekarang, yang perlu kita lakukan adalah membuat
‫skema dan kemudian membuat model darinya.
‫Jadi seperti yang kami lakukan dengan
‫tur, kami akan melakukannya di sini sekarang dengan pengguna.
‫Dan sebenarnya, karena kita sudah melakukannya
‫sebelumnya, saya ingin meninggalkan yang ini sebagai tantangan untuk Anda, oke?
‫Jadi saya ingin Anda membuat skema dengan lima bidang.
‫Jadi, nama, email, lalu foto; yang
‫hanya akan menjadi string, jadi seperti
‫di tur kami.
‫Saya juga ingin bidang untuk kata
‫sandi, dan untuk kata sandiKonfirmasi.
‫Oke?
‫Dan sedikit lebih banyak
‫tentang itu nanti ketika saya memecahkan
‫tantangan ini untuk Anda, tetapi untuk saat ini,
‫saya benar-benar ingin Anda berlatih membuat skema
‫ini sendiri dan kemudian juga membuat model dari skema itu, oke?
‫Dan pada akhirnya, Anda juga dapat mengekspornya.
‫Jadi tolong jeda video pada saat ini, dan saya
‫akan kembali sebentar lagi di sini untuk
‫menyelesaikan tantangan ini untuk Anda.
‫Baiklah.
‫Semoga Anda menyelesaikan tantangan itu.
‫Dan sekarang saya akan menyelesaikannya.
‫Dan jangan khawatir jika tidak terlihat persis sama.
‫Anda cukup mengadaptasinya saat kita melalui video ini.
‫Nah, melalui solusi ini.
‫Jadi, saya akan menyebutnya userSchema.
‫Dan seperti sebelumnya, kita membuat luwak baru. Skema.
‫Dan kemudian ke dalamnya, kita melewati objek skema
‫kita, dan mulai mendefinisikan bidang kita.
‫Jadi, saya ingin nama dengan tipe, tentu saja, String.
‫Dan saya juga ingin itu diperlukan.
‫Jadi, setiap kali pengguna baru
‫dibuat, pada dasarnya dia perlu memberi tahu kami namanya.
‫Jadi, mari kita atur pesan kesalahan di sini juga.
‫"Tolong beri tahu kami namamu! " Baiklah?
‫Jadi itu namanya.
‫Selanjutnya, kami menginginkan email.
‫Baiklah?
‫Jadi ini akan digunakan untuk pengguna untuk masuk
‫dan kami tidak akan membuat properti nama pengguna di sini, oke?
‫Jadi di beberapa aplikasi, Anda akan melihat nama pengguna yang
‫digunakan, tetapi dalam kasus ini, kami ingin
‫membuatnya tetap sederhana di sini dan hanya mengidentifikasi pengguna melalui email.
‫Dan sekali lagi, ini adalah tipe String.
‫Ini juga merupakan bidang wajib.
‫Jadi hanya beberapa pesan kesalahan lagi.
‫Selanjutnya, saya ingin email juga unik, oke?
‫Jadi, unik disetel ke true.
‫Dan itu pada dasarnya karena email
‫ini, tentu saja, adalah pengenal unik dari setiap pengguna, oke?
‫Sekarang secara default, email harus unik, bukan?
‫Tapi mari kita yakin 100% di sini
‫bahwa tidak akan
‫ada akun dengan alamat email yang sama, oke?
‫Sekarang kita juga dapat menentukan opsi tipe skema lain di
‫sini, yaitu huruf kecil.
‫Jadi itu yang baru.
‫Dan itu bukan validator.
‫Semua itu akan dilakukan, pada
‫dasarnya adalah mengubah email menjadi huruf kecil.
‫Jadi jika seseorang mengatakan seperti Jonas@Gmail atau apa pun, maka itu
‫akan diubah semuanya menjadi huruf kecil.
‫Oke?
‫Dan sekarang akhirnya, kami juga ingin benar-benar
‫memvalidasi alamat email.
‫Jadi pada dasarnya menguji apakah
‫email yang diberikan sesuai dengan format email umum, oke?
‫Jadi misalnya lagi jonas@gmail. com akan menjadi email
‫yang valid,
‫tetapi misalnya, seperti ini, tidak akan.
‫Atau seperti ini.
‫Dan untuk itu, pada dasarnya kita perlu membuat
‫validator kita sendiri.
‫Sekarang kita tidak akan membuat validator
‫kita sendiri untuk itu, tetapi kita akan menggunakan
‫paket validator yang saya tunjukkan sebelumnya dari npm, kan?
‫Jadi ingat di sini di tourModel, saya sebenarnya menunjukkan
‫modul ini kepada Anda di sini, tetapi
‫kemudian kami tidak menggunakannya
‫karena itu tidak terlalu berguna dalam kasus kami.
‫Tapi sekarang, ini akan sangat berguna,
‫jadi saya akan menyalinnya di sini, oke, jadi
‫sekarang kita bisa menggunakannya dengan benar di skema kita.
‫Jadi, untuk sekarang membuat validator khusus kami,
‫kami menggunakan validasi, ingat?
‫Dan kemudian kami meneruskan pesan fungsi
‫anti-kesalahan, seperti halnya dengan validator kami yang lain.
‫Dan untuk memeriksa apakah sebuah
‫email valid, yang perlu kita lakukan hanyalah memanggil metode isEmail
‫pada objek validator, oke?
‫Jadi, sekali lagi, berasal dari dokumentasi,
‫yang saya tunjukkan sebelumnya ketika kami pertama kali menggunakan modul ini.
‫Jadi, kapan pun Anda membutuhkan validator khusus,
‫Anda dapat melanjutkan dan memeriksa dokumentasi
‫dan menemukan apakah ada fungsi yang baik untuk kasus penggunaan Anda.
‫Jadi dalam hal ini, itu validator. Email, dan
‫pesan kesalahan kita akan
‫menjadi "email yang valid," oke?
‫Dan di video berikutnya, saat kita akan membuat
‫pengguna dari model ini, tentu saja kita akan menguji semua ini untuk
‫melihat apakah itu berhasil.
‫Selanjutnya, saya juga ingin pengguna pada
‫dasarnya dapat mengunggah foto.
‫Dan kita akan menyimpannya dalam sebuah String.
‫Tapi itu tidak wajib, oke?
‫Jadi foto biasanya opsional di sebagian besar aplikasi web, jadi kita akan melakukan
‫hal yang sama di sini.
‫Jadi, jika pengguna ingin mengunggah foto,
‫maka itu akan disimpan di suatu tempat di sistem
‫file kami dan jalur ke foto itu akan
‫disimpan ke dalam bidang foto ini, oke?
‫Jadi itu mirip dengan apa yang kami miliki di sini.
‫Ingat, kami memiliki,
‫ya, kami memiliki imageCover,
‫dan itu juga merupakan jalur tempat
‫di sistem file kami di
‫mana gambar tersebut sebenarnya diunggah.
‫Baiklah?
‫Jadi itu foto.
‫Dan sekarang kita membutuhkan kata sandi.
‫Dan kata sandinya harus, sekali lagi, bertipe String.
‫Itu tidak benar.
‫Dan kata sandi tentu saja diperlukan, bukan?
‫Benar sekali.
‫"Berikan kata sandi. "
‫Dan kami juga akan menerapkan aturan kata sandi yang
‫sangat sederhana, yaitu kata sandi harus memiliki
‫setidaknya delapan karakter.
‫Jadi bagaimana kita melakukannya?
‫Nah, itu cukup mudah.
‫Yang harus kita lakukan adalah minlength,
‫dan atur ke delapan dalam kasus ini.
‫Dan itu sebenarnya satu-satunya aturan sandi
‫yang akan kami terapkan.
‫Dan banyak aplikasi memiliki semua aturan gila
‫ini seperti setidaknya satu angka dan satu karakter dan satu simbol, tetapi
‫kami tidak akan menerapkan semua itu
‫di sini karena sebenarnya
‫telah ditemukan bahwa itu tidak terlalu efektif, oke?
‫Biasanya kata sandi yang paling
‫aman adalah yang terpanjang, oke,
‫dan bukan yang ini dengan simbol dan karakter gila
‫dan sebagainya.
‫Itu sudah cukup untuk kata sandi untuk saat ini,
‫tetapi kita akan membuat beberapa bidang yang lebih
‫spesifik di sini untuk kata sandi ketika kita mulai menyukai mengelola kata
‫sandi di database, oke?
‫Tapi untuk saat ini, itu sudah cukup di sini.
‫Dan jadi sekarang passwordConfirm.
‫Jadi Anda tahu bagaimana biasanya ketika Anda membuat akun
‫baru di beberapa aplikasi web, Anda
‫selalu harus memasukkan kata sandi Anda dan kemudian mengkonfirmasinya hanya untuk memastikan
‫bahwa mereka sama.
‫Dan itulah gunanya bidang ini.
‫Jadi tentu saja itu juga bertipe String.
‫Dan tentu saja itu juga diperlukan.
‫Oke.
‫Dan lagi, kita akan membuat beberapa properti
‫lagi di sini dalam opsi tipe skema nanti, oke?
‫Khususnya, validator untuk melihat apakah kata sandi
‫konfirmasi sebenarnya sama dengan kata sandi utama, oke?
‫Tetapi untuk saat ini, skema ini sebenarnya sudah
‫cukup, dan ada bidang-bidang yang saya minta untuk Anda buat
‫dalam tantangan ini.
‫Dan sekarang, sebenarnya, yang perlu kita lakukan adalah
‫melanjutkan dan membuat model dari skema.
‫Jadi Pengguna, dengan huruf kapital
‫U, ikuti saja konvensi bahwa variabel
‫model biasanya selalu
‫dengan huruf kapital, lalu luwak. model, dan kemudian berikan nama model, dan
‫tentu saja, kami ingin yang
‫ini disebut Pengguna dan dibuat dari skema pengguna yang kami buat sebelumnya.
‫Dan kemudian modul. ekspor disetel ke Pengguna.
‫Dan itu saja.
‫Itulah UserSchema sederhana kami yang akan memungkinkan kami
‫untuk memulai dengan benar-benar membuat pengguna
‫langsung di video berikutnya.
‫Jadi, sampai jumpa.