‫Narator: Jadi, saat ini
‫kami sedang dalam proses memberikan sentuhan akhir pada API
‫kami, dan salah satu hal yang perlu
‫kami lakukan sekarang adalah memperbaiki
‫beberapa autentikasi dan otorisasi di semua sumber daya kami.
‫Dan kita akan mulai di sini dengan sumber daya tur kita.
‫Dan karena semua hal
‫otentikasi dan otorisasi selalu ditentukan pada
‫deklarasi rute, kita
‫akan bekerja di sini pada file rute tur.
‫Jadi, API tur yang kami miliki di sini
‫pada dasarnya adalah apa yang ingin kami ekspos ke dunia.
‫Jadi misalnya, kami mungkin ingin mengizinkan
‫situs perjalanan lain untuk menyematkan tur kami ke
‫situs web mereka sendiri.
‫Dan untuk itulah API ini pada dasarnya.
‫Oleh karena itu, kami tidak akan memiliki otorisasi
‫untuk mendapatkan permintaan tur.
‫Benar?
‫Jadi kita harus benar-benar menyingkirkan salah satu yang kita
‫miliki saat ini.
‫Benar?
‫Jadi, yang ini.
‫Jadi untuk mendapatkan
‫semua tur, saat ini kami
‫harus melindunginya, sehingga hanya pengguna yang diautentikasi yang dapat menggunakannya.
‫Oke?
‫Tetapi sekali lagi, itu
‫tidak masuk akal, karena Anda
‫ingin mengekspos bagian API ini kepada semua orang.
‫Jadi, mari kita singkirkan itu.
‫Namun, tindakan membuat atau mengedit tur, kami hanya ingin
‫mengizinkan pemandu utama
‫dan administrator untuk melakukan tindakan ini.
‫Jadi tentu saja, tidak ada pengguna biasa, dan
‫juga tidak ada panduan biasa.
‫Jadi, hanya admin dan pemandu utama.
‫Jadi mari kita taruh di sini sebenarnya.
‫Pengendali autentik. melindungi,
‫dan authcontroller. membatasi
‫Admin,
‫dan pemandu utama.
‫Simpan di
‫sini, dan itu terlihat baik-baik saja.
‫Dan selanjutnya kami ingin melakukan hal yang sama dengan pengeditan.
‫Benar?
‫Jadi kita sudah melakukannya di bagian depan, jadi
‫mari kita salin apa yang kita miliki di sini untuk ditambal juga.
‫Berikan selamat, dan sekarang itu benar-benar terlihat sempurna.
‫Oke?
‫Jadi yang lainnya,
‫bahkan mendapatkan hanya satu tur di
‫sini, tentu saja gratis untuk semua orang, oke?
‫Dan hal yang sama berlaku untuk mendapatkan tur
‫teratas, dan juga mendapatkan statistik tur.
‫Sekarang di sini, tentang mendapatkan paket
‫bulanan, kami juga mungkin ingin membatasi itu.
‫Hanya, misalnya, untuk semua orang kecuali pengguna biasa.
‫Oke?
‫Jadi salin yang ini
‫di sini juga, simpan, lalu tambahkan juga panduan normal.
‫Baik?
‫Jadi, itu terlihat sempurna pada saat ini, saya pikir.
‫Oke?
‫Jadi pada dasarnya, router tur kami sekarang sudah selesai.
‫Sempurna.
‫Dan saya tidak akan menguji
‫semua ini karena kita sudah tahu bahwa itu berhasil.
‫Baik?
‫Jadi, mari kita tutup
‫yang ini dan langsung beralih ke yang berikutnya.
‫Jadi, rute pertama di
‫sini tentu saja terbuka untuk semua orang.
‫Jadi, mendaftar, masuk, lupa
‫kata sandi, dan mengatur ulang kata sandi.
‫Untuk semua ini, Anda harus masuk.
‫Benar?
‫Tetapi, Anda harus masuk
‫agar diautentikasi untuk memperbarui kata sandi Anda, untuk mendapatkan informasi
‫Anda sendiri, untuk memperbarui
‫atau menghapus akun Anda sendiri, dan benar-benar untuk
‫semua operasi lain di sini
‫juga.
‫Jadi kami tidak ingin publik pada dasarnya mendapatkan informasi
‫tentang semua pengguna.
‫Kami juga tidak ingin siapa pun menghapus
‫pengguna, atau memperbarui pengguna, dan sebenarnya tidak satu pun dari
‫operasi ini di sini harus gratis untuk umum.
‫Oke?
‫Jadi untuk semua
‫rute ini di sini, mulai
‫dari titik ini, Anda harus selalu diautentikasi.
‫Baik?
‫Jadi, sekarang kita bisa melanjutkan
‫dan menambahkan authcontroller ini. melindungi semua rute ini, tetapi
‫sebenarnya kita bisa melakukan lebih baik dari itu, bukan?
‫Jadi untuk melakukan
‫itu, perlu diingat bahwa fungsi proteksi di sini
‫sebenarnya hanyalah sebuah middleware.
‫Dan juga ingat bahwa
‫middleware selalu berjalan secara berurutan, bukan?
‫Sekarang dengan router yang kami miliki
‫di sini, yang kami
‫buat di awal, seperti aplikasi mini.
‫Ingat bahwa?
‫Dan seperti halnya dengan aplikasi biasa,
‫kita juga dapat menggunakan middleware di router ini.
‫Oke?
‫Jadi, kita bisa melakukan sesuatu seperti ini.
‫Router. gunakan,
‫dan sekarang authcontroller. melindungi, dan hanya
‫itu.
‫Dan apa
‫yang akan dilakukan pada dasarnya adalah melindungi
‫semua rute yang datang setelah titik ini.
‫Oke?
‫Dan lagi, itu karena middleware
‫berjalan secara berurutan.
‫Dan setelah keempat fungsi middleware ini, karena
‫mengingat secara teknis ini
‫masih juga middleware,
‫maka middleware berikutnya dalam stack adalah ini melindungi.
‫Dan ini hanya akan memanggil middleware
‫berikutnya jika pengguna diautentikasi.
‫Dan middleware berikutnya dalam hal ini adalah patch ini di sini.
‫Oke?
‫Jadi, sekali lagi, ini
‫berarti bahwa
‫semua rute ke semua middleware ini,
‫secara teknis, yang datang setelah yang ini sekarang dilindungi.
‫Jadi, kita dapat melanjutkan dan menghapus perlindungan ini
‫dari mereka semua.
‫Oke?
‫Dan hanya untuk membuktikan kepada Anda bahwa
‫ini sekarang masih berfungsi, mari kita lanjutkan dan dapatkan informasi saya.
‫Jadi pada dasarnya pengguna saat ini.
‫Jadi jika sekarang saya
‫menjalankan ini, Anda akan melihat bahwa itu masih berfungsi.
‫Dan jika saya menghapus
‫otentikasi, maka dikatakan kami tidak masuk.
‫Dan itulah tepatnya yang melindungi middleware.
‫Benar?
‫Jadi, sekarang akan kembali bekerja.
‫Begitu sempurna!
‫Itu trik kecil yang bagus untuk
‫melindungi semua rute pada saat yang
‫sama, biasanya dengan menggunakan
‫middleware yang datang sebelum semua rute lainnya.
‫Oke?
‫Dan misalnya, jika sekarang
‫kita memindahkannya sedikit ke atas, seperti ini misalnya,
‫maka kita juga perlu masuk
‫untuk menggunakan kata sandi yang lupa.
‫Benar?
‫Jadi, izinkan saya membuktikannya kepada Anda.
‫Oke?
‫Dan biasanya, tentu saja, kita tidak perlu login
‫untuk melupakan kata sandi
‫kita, karena itu tidak masuk akal, bukan?
‫Tapi sekarang, karena kita memindahkan middleware
‫itu sedikit ke atas, dikatakan "Anda belum masuk".
‫Oke?
‫Dan sungguh, itu membuktikan bahwa pengontrol auth ini di sini
‫melakukan tugasnya.
‫Jadi, lindungi semua rute -- setelah
‫middleware ini.
‫Oke.
‫Sekarang juga ingat bagaimana kami mengatakan
‫bahwa semua tindakan ini di sini hanya boleh
‫dilakukan oleh administrator, jadi
‫sekarang kami benar-benar dapat menggunakan teknik yang sama persis seperti
‫yang kami gunakan di sini untuk melindungi semua rute ini.
‫Jadi, router. gunakan,
‫pengontrol auth. batasi, admin.
‫Oke?
‫Jadi sekarang, hanya admin yang bisa mendapatkan
‫semua pengguna, membuat pengguna baru, mendapatkan pengguna lagi,
‫dan menambal dan menghapus pengguna.
‫Baik?
‫Jadi mulai saat
‫ini, semua rute tidak hanya dilindungi,
‫tetapi juga dibatasi hanya untuk admin.
‫Tapi tentu saja, yang datang sebelum
‫semua orang yang login bisa mengaksesnya, oke?
‫Jadi izinkan saya membuktikannya kepada Anda.
‫Jadi, saya akan masuk, bukan dengan admin, tetapi
‫dengan testuser.
‫Oke?
‫Jadi kita berhasil masuk,
‫sekarang mari kita coba melihat semua pengguna.
‫Dan sekarang dikatakan Anda belum masuk.
‫Sebenarnya kita sudah login,
‫tapi kita lupa menambahkan otorisasi disini.
‫Jadi, pembawa token, kirimkan lagi, dan sekarang kami melihat
‫Anda tidak memiliki izin untuk melakukan.
‫Tapi sekarang, ketika kita mengubahnya menjadi administrator, jadi kita masuk
‫sebagai admin sekarang, dan
‫sekarang setelah kita mendapatkan semua pengguna, tentu saja
‫itu berhasil.
‫Begitu sempurna!
‫Dan itu benar-benar menyelesaikan
‫otentikasi dan otorisasi untuk pengguna ini juga.
‫Tapi hanya untuk
‫mencerminkan bahwa di Postman, mari kita kembali dan pada dasarnya
‫meletakkan otorisasi di sini, di mana-mana.
‫Oke?
‫Dan lagi, itu karena
‫nanti kita akan membuat dokumentasi
‫API berdasarkan koleksi yang kita buat di sini.
‫Dan kemudian, penting bahwa kita benar-benar menandai yang
‫ini di sini sebagai dilindungi.
‫Simpan itu.
‫Simpan yang ini juga.
‫Dan hal yang sama untuk memperbarui dan menghapus pengguna.
‫Jadi, pembawa token, simpan, dan
‫sama untuk pembaruan.
‫Baiklah, dan sebenarnya karena kita melakukan itu, mari kita lakukan hal
‫yang sama dengan yang lainnya.
‫Jadi, bukan ulasannya,
‫itu sebentar
‫lagi, tapi benar-benar untuk tur.
‫Jadi di sini kita tidak lagi memerlukan otentikasi apa pun,
‫jadi mari kita simpan itu.
‫Lupa kita juga tidak memerlukan otorisasi
‫apa pun, tetapi untuk membuat kita sekarang membutuhkan token pembawa.
‫Oke?
‫Juga untuk memperbarui, jadi masuk
‫akal untuk melindunginya di Postman juga.
‫Sekarang yang ini sudah memilikinya, karena
‫kami benar-benar menggunakan yang ini untuk mengujinya
‫sejak awal.
‫Jadi yang ini tidak memilikinya, tetapi mendapatkan paket bulanan, kami
‫juga melindungi yang ini.
‫Tambahkan token pembawa di sini
‫juga, jadi saya
‫percaya dengan ini kita benar-benar selesai sekarang, dengan ini juga.
‫Jadi apa yang perlu kita lakukan untuk menyelesaikan sekarang
‫bagian ini ada di sini, perbaiki hal yang sama pada ulasan juga.
‫Dan hal pertama yang
‫ingin saya lakukan adalah pada dasarnya melindungi
‫semua rute yang berkaitan dengan ulasan.
‫Jadi, kami tidak ingin siapa pun
‫yang tidak diautentikasi untuk mendapatkan, atau memposting, atau mengubah, atau menghapus ulasan apa pun.
‫Oke?
‫Kami mengatakan router. gunakan,
‫pengontrol otentikasi. melindungi.
‫Oke?
‫Dan itu berarti bahwa dari titik
‫ini tidak ada yang dapat mengakses salah
‫satu rute ini tanpa diautentikasi.
‫Tapi kita bisa menghapus bagian ini di sini, oke?
‫Jadi sekarang dengan otentikasi keluar dari jalan,
‫mari kita berpikir tentang otorisasi.
‫Jadi, pertama-tama, hanya pengguna yang
‫dapat memposting ulasan.
‫Tidak ada pemandu, dan juga tidak ada administrator.
‫Dan jadi bagian ini, kita sebenarnya sudah memilikinya di sini.
‫Oke?
‫Kemudian, admin harus dapat memperbarui atau
‫menghapus ulasan, seperti pengguna biasa, tentu saja,
‫sehingga mereka dapat mengedit atau
‫menghapus ulasan mereka sendiri.
‫Dan akhirnya, panduan tidak dapat menambah, mengedit, atau menghapus ulasan.
‫Karena pemandu adalah orang yang melakukan pekerjaan itu, jadi
‫akan aneh jika mereka bisa
‫memposting ulasan sendiri, atau mengedit ulasan orang lain, bukan?
‫Jadi mari kita masukkan apa yang baru saja kita jelaskan ke dalam kode.
‫Jadi, pada dasarnya patch and
‫delete dibatasi untuk
‫pengguna,
‫atau sebenarnya hanya pengguna, dan admin.
‫Dan kemudian hal yang sama untuk menghapus.
‫Oke?
‫Jadi Anda melihat bahwa sekarang panduan dan
‫panduan utama tidak ada hubungannya sama sekali dengan ulasan.
‫Yang bisa mereka lakukan hanyalah mendapatkan
‫ulasan, tetapi tidak mengubah atau mempostingnya sama sekali, oke?
‫Jadi, sekarang di Postman, mari kita taruh
‫di sini juga.
‫Jadi buat review baru sudah punya otorisasi, dapatkan semua
‫review juga butuh sekarang.
‫Jadi, dengan token pembawa, simpan itu, di
‫sini, token pembawa juga.
‫Sekarang tulis, dan juga dapatkan satu ulasan.
‫Sebenarnya mari kita pesan ini
‫juga, sehingga semuanya memiliki urutan yang sama.
‫Dan sekarang tentang keduanya di sini,
‫mereka sebenarnya juga dilindungi.
‫Benar?
‫Karena pada akhirnya penangan
‫ulasanlah yang sebenarnya dipanggil untuk keduanya.
‫Jadi di sini kita juga perlu menambahkan token pembawa itu.
‫Oke?
‫Jadi sekarang, pada dasarnya, satu-satunya
‫cara untuk mendapatkan akses ke data tentang ulasan adalah dengan menelepon semua tur.
‫Benar?
‫Setidaknya untuk orang yang tidak diautentikasi.
‫Oke?
‫Jadi, mari kita tutup semua ini, dan jadi
‫saya pikir kita sekarang baik untuk pergi, dan kita
‫benar-benar menyelesaikan bagian ini juga.
‫Mari kita bersihkan di sini sedikit.
‫Dan ya, saya pikir itu saja.
‫Jadi dengan ini kami benar-benar menyelesaikan
‫bagian otentikasi dan otorisasi dari ketiga sumber daya kami, jadi
‫kami hampir menyelesaikan API kami di sini.
‫Hanya ada sedikit hal yang harus dilakukan, jadi
‫kita akan melakukan semuanya di
‫sisa bagian ini.