andriajah Tue Feb 2022 1 year ago

Authentication dengan JWT Laravel Tanpa Password

Problem:

Saya mencoba mempelajari Laravel dan tujuan saya adalah untuk dapat membangun RESTful API (tidak menggunakan tampilan atau blade, hanya hasil JSON. Nanti, aplikasi web AngularJS dan aplikasi seluler hybrid Cordova akan menggunakan api ini.

Setelah beberapa penelitian, saya cenderung memilih perpustakaan JWT-Auth untuk authentication login. Masalah saya adalah: Saya memiliki 2 tipe pengguna utama: pelanggan dan moderator . Pelanggan tidak diharuskan memiliki kata sandi. Saya harus dapat membuat token untuk akses hanya dengan email yang disediakan. Jika email itu ada di database dan itu milik pelanggan, itu akan menghasilkan dan mengembalikan token. Jika ada dan milik moderator, itu akan mengembalikan false sehingga antarmuka dapat meminta kata sandi. Jika email tidak ada, itu melempar kesalahan parameter yang tidak valid.

Saya membaca dokumen di sini dan dikatakan dimungkinkan untuk menggunakan Klaim Kustom. Tetapi dokumen tidak menjelaskan apa itu klaim dan apa artinya array diteruskan sebagai klaim khusus. Saya ingin beberapa masukan tentang bagaimana cara mencapai apa yang saya jelaskan di atas.

 

Solve:

Jika Anda belum memiliki App\User objek, dapatkan dengan sesuatu seperti

$user = App\User::find(1);

Hasilkan token menggunakan fromUser() metode JWTAuth

$token = \JWTAuth::fromUser($user)

Di atas tidak mengotentikasi pengguna, itu hanya menghasilkan token JWT. Jika Anda perlu mengautentikasi pengguna, maka Anda harus menambahkan sesuatu seperti ini

\JWTAuth::setToken($token)->toUser();
laravel tutorial laravel laravel auth jwt example login laravel with jwt without password