laravel

Tutorial Paspor Laravel

Tutorial Paspor Laravel
Beberapa fitur otentikasi diimplementasikan di Laravel versi 5.2. Sistem otentikasi yang berbeda diperlukan untuk mengimplementasikan rute berbeda yang memakan waktu dan tidak efisien. Sistem otentikasi yang sama dapat digunakan untuk Web dan API dengan menggunakan fitur otentikasi berbasis token. Tetapi sistem otentikasi ini tidak lebih aman untuk aplikasi. Sekarang, sistem otentikasi aplikasi Laravel dapat diamankan dengan menggunakan yang baru Paspor fitur otentikasi Laravel. Ini menggunakan dua ENV yang merupakan rahasia dari API OAUTH paspor Laravel. Ini adalah API_CLIENT_ID & API_CLIENT_SECRET. Token akses dibuat untuk setiap pengguna ketika paspor Laravel digunakan dan memungkinkan pengguna untuk mengakses beberapa titik akhir yang aman. Bagaimana Anda dapat membangun sistem otentikasi API yang aman dengan menggunakan paspor Laravel dan mengakses konten resmi ditunjukkan dalam tutorial ini.

Keuntungan Menggunakan Laravel Passport:

Protokol OAUTH2 dapat diintegrasikan dengan aplikasi Laravel dengan menggunakan kata sandi Laravel. Ketika pengguna ingin mengambil atau memasukkan data dari aplikasi maka permintaan akses akan dikirim oleh protokol ini. Izin akan diberikan kepada pengguna dengan mengizinkan pengguna untuk mengakses user. Beberapa manfaat utama dari otentikasi paspor disebutkan di bawah ini.

Prasyarat:

Anda harus melakukan tugas berikut sebelum menginstal dan menggunakan Laravel Passport untuk otentikasi pengguna.

Instal Laravel Paspor:

Jalankan perintah berikut dari terminal untuk menginstal paket Laravel Passport menggunakan composer.

$ komposer membutuhkan laravel/paspor

Anda akan diminta untuk membuat pengguna tabel di database sebelum menginstal paket paspor. Tiga file migrasi dan a Pengguna model telah dibuat secara otomatis ketika proyek Laravel baru dibuat. Salah satunya digunakan untuk membuat pengguna meja. Buka folder proyek Laravel dan jalankan perintah migrasi berikut untuk membuat pengguna meja.

$ php artisan bermigrasi

Jalankan perintah berikut untuk menginstal paket paspor untuk proyek.

$ php artisan paspor: instal

Anda akan mendapatkan informasi berikut setelah berhasil memasang paspor Laravel di proyek Anda your. Di sini, dua kunci rahasia dihasilkan. Untuk satu klien akses pribadi dan satu lagi untuk klien pemberian kata sandi.

Konfigurasi Paspor Laravel:

Buka Pengguna model yang terletak di lokasi, Aplikasi\model.php dari editor, dan modifikasi model seperti di bawah ini. Menambahkan Laravel\Passport\HasApiTokens di awal kelas dan gunakan HasApiTokens dan Notifiable di dalam kelas.

Aplikasi ruang nama;
gunakan Illuminate\Contracts\Auth\MustVerifyEmail;
gunakan Illuminate\Foundation\Auth\User sebagai Authenticable;
gunakan Illuminate\Notifications\Notifiable;
//Ditambahkan di sini
gunakan Laravel\Passport\HasApiTokens;
kelas Pengguna meluas Dapat Diotentikasi

//Dimodifikasi di sini
gunakan HasApiTokens, Dapat Diberitahukan;
/**
* Atribut yang dapat ditetapkan secara massal.
*
* @var array
*/
dilindungi $dapat diisi = [
'nama', 'email', 'sandi',
];
/**
* Atribut yang harus disembunyikan untuk array.
*
* @var array
*/
dilindungi $tersembunyi = [
'kata sandi', 'remember_token',
];
/**
* Atribut yang harus dilemparkan ke tipe asli.
*
* @var array
*/
dilindungi $cast = [
'email_verified_at' => 'waktu tanggal',
];

Selanjutnya, buka app/Providers/AuthServiceProvider.php untuk mendaftarkan rute yang diperlukan untuk mengeluarkan dan mencabut token akses. Metode Passport::routes dipanggil dalam metode boot boot PenyediaLayanan Auth. Ubah konten file yang ditunjukkan di bawah ini.

namespace App\Providers;
gunakan Illuminate\Foundation\Support\Providers\AuthServiceProvider sebagai ServiceProvider;
gunakan Illuminate\Support\Facades\Gate;
//paspor ditambahkan di sini
gunakan Laravel\Passport\Passport;
kelas AuthServiceProvider memperluas ServiceProvider

/** Pemetaan kebijakan untuk aplikasi.
*
* @var array
*/
dilindungi $kebijakan = [
'Aplikasi\Model' => 'Aplikasi\Kebijakan\ModelPolicy',
];
/**
* Daftarkan layanan otentikasi / otorisasi apa pun.
*
* @kembali batal
*/
boot fungsi publik()

$this->registerPolicies();
Paspor::rute();
Paspor::tokenExpireIn(now()->addDays(15));
Paspor::refreshTokensExpireIn(now()->addDays(30));

Selanjutnya, buka konfigurasi\aplikasi.php dan masukkan baris berikut di penyedia array untuk memasukkan kelas yang diperlukan untuk menggunakan paspor Laravel.

Laravel\Passport\PassportServiceProvider::class,

Selanjutnya, buka konfigurasi\auth.php dan atur driver API ke paspor dalam penjaga array yang ditunjukkan di bawah ini.

'penjaga' => [
'web' => [
'pengemudi' => 'sesi',
'penyedia' => 'pengguna',
],
'api' => [
'pengemudi' => 'paspor',
'penyedia' => 'pengguna',
'hash' => salah,
],
],

Implementasikan Controller untuk Registrasi dan Otentikasi:

Anda harus membuat pengontrol untuk menerapkan sistem otentikasi menggunakan paket paspor. Jalankan perintah berikut dari folder root proyek untuk membuat Pengontrol Api.

$ php artisan make:controller ApiController

Di bagian selanjutnya dari tutorial ini, tiga metode ditambahkan di dalam Pengontrol Api untuk membuat pengguna baru, mengautentikasi pengguna, dan mendapatkan informasi mendetail tentang pengguna yang diautentikasi.

SEBUAH. Daftar

Pengguna baru dapat dibuat ke dalam pengguna tabel dengan menerapkan a daftar() metode. Tambahkan kode berikut di dalam Pengontrol Api untuk mengimplementasikan API register. Nilai bidang yang diperlukan untuk membuat pengguna baru diambil oleh argumen, $permintaan dari metode daftar(). Validator class digunakan untuk memeriksa nilai bidang valid atau tidak berdasarkan aturan validasi yang ditentukan. jika gagal() metode mengembalikan true maka itu akan mengembalikan pesan kesalahan dalam format JSON. jika gagal() metode mengembalikan false maka kata sandi hash akan dihasilkan dan informasi pengguna baru akan dimasukkan ke dalam tabel pengguna. Token akan dibuat setelah membuat pengguna baru dan pesan sukses dengan nilai token akan dikembalikan.

register fungsi publik (Permintaan $ permintaan)

/**Validasi data menggunakan aturan validasi
*/
$validator = Validator::make($request->all(), [
'nama' => 'wajib',
'email' => 'wajib|email',
'sandi' => 'wajib',
]);
/**Periksa validasi gagal atau tidak
*/
if ($validator->gagal())
/**Kembalikan pesan kesalahan
*/
return response()->json([ 'error'=> $validator->errors() ]);

/**Menyimpan semua nilai bidang
*/
$pengguna baru = $permintaan->semua();
/**Buat kata sandi terenkripsi menggunakan hash
*/
$newuser['password'] = Hash::make($newuser['password']);
/**Memasukkan pengguna baru ke dalam tabel
*/
$pengguna = Pengguna::buat($penggunabaru);
/**Buat token akses untuk pengguna
*/
$success['token'] = $user->createToken('AppName')->accessToken;
/**Kembalikan pesan sukses dengan nilai token
*/
return response()->json(['success'=>$success], 200);

B. Gabung:

Setiap pengguna dapat diautentikasi dengan menerapkan masuk() metode. Tambahkan kode berikut di dalam Pengontrol Api untuk mengimplementasikan API login. Bidang yang diperlukan untuk mengautentikasi pengguna diambil dari $permintaan dari masuk() metode. mencoba() metode akan memeriksa nilai surel dan kata sandi untuk otentikasi. Jika nilainya cocok dengan nilai pengguna tabel maka catatan pengguna tertentu akan diambil dan nilai token akan dikembalikan. Jika otentikasi gagal maka Tidak sah pesan akan dikembalikan.

login fungsi publik (Permintaan $ permintaan)

/**Baca kredensial yang diberikan oleh pengguna
*/
$kredensial = [
'email' => $request->email,
'password' => $request->password
];
/**Periksa kredensial valid atau tidak
*/
if( auth()->attempt($credentials) )
/**Menyimpan informasi pengguna yang diautentikasi
*/
$pengguna = Auth::pengguna();
/**Buat token untuk pengguna yang diautentikasi
*/
$success['token'] = $user->createToken('AppName')->accessToken;
return response()->json(['success' => $success], 200);
lain
/**Kembalikan pesan kesalahan
*/
return response()->json(['error'=>'Tidak Sah'], 401);

C. Detail Pengguna

Anda bisa mendapatkan informasi terperinci dari setiap pengguna setelah otentikasi dengan menerapkan API Pengguna. Tambahkan kode berikut ke dalam Pengontrol Api untuk mengambil informasi terperinci dari setiap pengguna yang diautentikasi.

fungsi publik user_info()

/**Ambil informasi dari pengguna yang diautentikasi
*/
$pengguna = Auth::pengguna();
/** Kembalikan detail pengguna
*/
return response()->json(['success' => $user], 200);

Rute API untuk Pengontrol:

Buka rute\aplikasi.php file dan ubah konten dengan kode berikut untuk menentukan rute masuk, rute pendaftaran, dan rute detail untuk layanan API.

/**Rute untuk masuk API */
Rute::post('login', '[email dilindungi]');
/**Rute untuk mendaftar API */
Rute::post('daftar', '[dilindungi email]');
/**Rute untuk detail API pengguna */
Rute::middleware('auth:api')->grup(fungsi()
Route::post('details', '[email protected]_info');
);

Jalankan perintah berikut untuk memulai server pengembangan Laravel.

$ php artisan serve

Uji otentikasi API menggunakan tukang pos:

Postman adalah alat yang sangat berguna untuk menguji RESTful APIs. Permintaan HTTP dapat dibuat dengan sangat mudah untuk menguji fungsionalitas API dengan menggunakan antarmuka pengguna aplikasi ini tanpa menulis banyak kode untuk mengirim permintaan. Tukang pos dapat menangani berbagai permintaan dan utilitas HTTP untuk mengembangkan API. Ini memiliki versi berbayar dan gratis untuk Linux.

Instal Agen Tukang Pos:

Jalankan perintah berikut dari terminal untuk menginstal agen tukang pos di Ubuntu.

$ sudo snap instal tukang pos

Buka aplikasi setelah instalasi. Antarmuka berikut akan muncul setelah membuka jendela baru tukang pos.

Uji Daftar API:

Klik pada buat permintaan tautan untuk membuka jendela permintaan. Server pengembangan Laravel berjalan di port 8000 secara default yang digunakan di sini. Jika Anda menggunakan port yang berbeda maka Anda harus mengubah nomor port di URL Anda. Metode POST dipilih dari drop-down dan URL berikut digunakan untuk mengirim permintaan API untuk mendaftar API.

http://localhost:8000/api/register

Tiga bidang didefinisikan sebagai bidang wajib untuk pengguna tabel untuk membuat pengguna baru. Ini adalah nama, surel, dan kata sandi. Tetapkan tiga kunci dan nilai untuk bidang-bidang ini yang ditunjukkan di bawah ini dan klik pada Kirim tombol. Itu daftar() metode dari Pengontrol Api akan dipanggil sesuai rute jika permintaan dikirim dengan benar.

Respons berikut akan muncul jika catatan pengguna baru berhasil dimasukkan ke dalam: pengguna meja. Kode respon, 200 menunjukkan bahwa permintaan HTTP berhasil dan token dibuat setelah memasukkan pengguna baru yang ditampilkan di badan respons dalam format JSON.

Uji Masuk API:

Pilih POS metode seperti Daftarkan API yang ditunjukkan sebelumnya. Setel URL berikut di bilah alamat untuk mengirim permintaan API untuk API Masuk.

http://localhost:8000/api/login

Dua bidang wajib untuk mengotentikasi setiap pengguna berdasarkan catatan dari pengguna meja. Ini adalah surel dan kata sandi. Tetapkan dua kunci dan nilai untuk bidang ini yang ditunjukkan di bawah ini dan klik pada Kirim tombol. Itu Gabung() metode dari Pengontrol Api akan dipanggil sesuai rute jika permintaan dikirim dengan benar.

Respons berikut akan muncul jika pengguna berhasil diautentikasi berdasarkan catatan: pengguna meja. Kode respon, 200 menunjukkan bahwa permintaan HTTP berhasil. Nilai token dihasilkan setelah mengautentikasi pengguna dan mengembalikan badan respons dalam format JSON.

Anda akan mendapatkan badan respons berikut ketika kredensial yang salah diberikan untuk mengautentikasi pengguna. 401 kode kesalahan dibuat di sini untuk menunjukkan akses yang tidak sah.

Uji API Detail Pengguna:

Beberapa parameter header harus disiapkan sebelum mengirim permintaan untuk Details API. Klik pada header tab bagian permintaan dan tambahkan tiga nilai header untuk mengidentifikasi pengguna yang diautentikasi. Nilai token disalin dari badan respons dan disetel untuk nilai Otorisasi.

Terima: aplikasi/json
Tipe-Konten: aplikasi/json
Otorisasi:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiNDU3OWUwNmEwZ
jE3ZWNmYThhOTkxNDJkMmQwZDQxYzU4MGFiMDM3OTc4NTIwYzA4NTJjZTk2MWU4NGFkYjE3ODU
wMzc3OTIwMzk3OWVmNTkiLCJpYXQiOjE1OTkyNzk3MTYsIm5iZiI6MTU5OTI3OTcxNiwiZXhwI
joxNjMwODE1NzE2LCJzdWIiOiI1Iiwic2NvcGVzIjpbXX0.fJYvzFsiD4WKcklpZ2-
w64UVOOk1DqMo_KbLCI7C00xQKhuQupVkgRULUx3e2mJIoJ8ET0MLngpUIFFS8Aet7W8KoQCcL
SzMKUjot4fhONQ5Dyzmb4csAIXFVoKK8YRm4gPCq-b1OW5e9K5gcrLKmqnt9a6nywoGHkXqq4GE
qHnHFgPnOkMfjbtGuKIj3aMtA2i7qHcbWdIt5O970LdM1ehW-AuMESZflJdjfN6zkHK4Kc93-
vLpZbgEKh1XD0p1fJEWyms590oIPERuWVS1hfCkpsnIFYRoB04TYTYPHdL25qwBW0m0VaTQG9fH
7xgiJFSkyS-FGmmUc7lglM8JUeVYmZfv-o5XVRlQ2EOCjLHSOFvKkuFzw-j3YfKaHBWY3Oo4gRD4
foWV2tGvDnF1zR_b11BDfDgv3rrl8mZNHx9DHjaFqUbWEdsnZbWouOR9wy
Vh0GI1fcIkWoWSM_BoNaTFittr9zqjkIWrQtKS3kVqsnCF8nIKXLp2dGaXdd8mWYWoq34NLYHhp
0u2TRy_BFFe3y_icgQVLBHcmEwdiXJISM8l9ctlodgRqA3wAQP11fV8cJfAIP2mfz3uUVY6nDqAr
kv6zRQ9oE4NCsqVvXeVp7RWOfakpu7EcQnwVDoq4hZ5j9tWx8bZ5eybMgHvRXkQKheie2j6Gzt0-rBUrFM

Bagian header dari bagian permintaan akan terlihat seperti gambar berikut. Anda harus menetapkan nilai token Anda yang dihasilkan di badan respons agen tukang pos Anda.

Selanjutnya, klik pada Otorisasi tab bagian permintaan dan pilih Token Pembawa sebagai jenis otorisasi dari Tipe tarik-turun.

Sekarang, pilih POS metode, atur URL berikut di bilah alamat. Ini akan memanggil Info Pengguna() metode dari Pengontrol Api yang akan mengambil informasi terperinci dari pengguna yang diautentikasi.

http://localhost:8000/api/details

Jika nilai token dan informasi header diberikan dengan benar maka detail user tersebut akan dikembalikan sebagai response body dalam format JSON seperti gambar berikut.

Video tutorial

Kesimpulan:

Otentikasi paspor digunakan di banyak situs web Laravel sekarang untuk fitur-fiturnya yang bermanfaat. Itu membuat sistem otentikasi Laravel lebih aman daripada otentikasi default dan menyediakan layanan lain yang tidak tersedia dalam otentikasi default. Penggunaan dasar paspor Laravel dengan proses instalasi dan konfigurasi dijelaskan dalam tutorial ini dengan benar. Penggunaan agen tukang pos juga ditampilkan di sini untuk menguji API. Saya harap pembaca akan memahami fungsi paket paspor setelah membaca tutorial ini this.

Game Remaster HD untuk Linux yang Belum Pernah Rilis Linux Sebelumnya
Banyak pengembang dan penerbit game datang dengan remaster HD dari game lama untuk memperpanjang umur waralaba, harap penggemar meminta kompatibilitas...
Cara Menggunakan AutoKey untuk Mengotomatiskan Game Linux
AutoKey adalah utilitas otomatisasi desktop untuk Linux dan X11, diprogram dengan Python 3, GTK dan Qt. Dengan menggunakan skrip dan fungsionalitas MA...
Cara Menampilkan Penghitung FPS di Game Linux
Game Linux mendapat dorongan besar ketika Valve mengumumkan dukungan Linux untuk klien Steam dan game mereka pada tahun 2012. Sejak itu, banyak game A...