laravel

Tutorial Pasport Laravel

Tutorial Pasport Laravel
Beberapa ciri pengesahan dilaksanakan dalam Laravel versi 5.2. Sistem pengesahan yang berbeza diperlukan untuk melaksanakan rute yang berbeza yang memakan masa dan tidak efisien. Sistem pengesahan yang sama boleh digunakan untuk Web dan API dengan menggunakan ciri pengesahan berasaskan token. Tetapi sistem pengesahan ini tidak lebih selamat untuk aplikasi. Kini, sistem pengesahan aplikasi Laravel dapat dijamin dengan menggunakan yang baru Pasport ciri pengesahan Laravel. Ia menggunakan dua ENV yang merupakan rahsia API OAVTH pasport Laravel. Ini adalah API_CLIENT_ID & API_CLIENT_SECRET. Token akses dihasilkan untuk setiap pengguna apabila pasport Laravel digunakan dan ia membolehkan pengguna mengakses beberapa titik akhir yang selamat. Bagaimana anda boleh membina sistem pengesahan API yang selamat dengan menggunakan pasport Laravel dan mengakses kandungan yang dibenarkan ditunjukkan dalam tutorial ini.

Kelebihan Menggunakan Laravel Passport:

Protokol OAUTH2 dapat disatukan dengan aplikasi Laravel dengan menggunakan kata laluan Laravel. Apabila pengguna ingin mengambil atau memasukkan data dari aplikasi maka permintaan akses akan dikirimkan oleh protokol ini. Kebenaran akan diberikan kepada pengguna dengan memberi kebenaran kepada pengguna untuk mengaksesnya. Beberapa faedah utama pengesahan pasport disebutkan di bawah.

Prasyarat:

Anda mesti melakukan tugas berikut sebelum memasang dan menggunakan Laravel Passport untuk pengesahan pengguna.

Pasang Laravel Passport:

Jalankan arahan berikut dari terminal untuk memasang pakej Laravel Passport menggunakan komposer.

$ komposer memerlukan laravel / pasport

Anda perlu membuat pengguna jadual di pangkalan data sebelum memasang pakej pasport. Tiga fail migrasi dan a Pengguna model telah dihasilkan secara automatik apabila projek Laravel baru dibuat. Salah satunya digunakan untuk membuat a pengguna meja. Pergi ke folder projek Laravel dan jalankan arahan migrasi berikut untuk membuat pengguna meja.

$ php artisan berhijrah

Jalankan arahan berikut untuk memasang pakej pasport untuk projek tersebut.

pasport artisan $ php: pasang

Anda akan mendapat maklumat berikut setelah memasang pasport Laravel dengan jayanya dalam projek anda. Di sini, dua kunci rahsia dihasilkan. Satu untuk pelanggan akses peribadi dan satu lagi untuk pelanggan pemberian kata laluan.

Konfigurasi Pasport Laravel:

Buka Pengguna model yang terletak di lokasi, Aplikasi \ model.php dari penyunting, dan ubah suai model seperti di bawah. Tambah Laravel \ Passport \ HasApiTokens pada awal kelas dan gunakan HasApiTokens dan Notifiable di dalam kelas.

Aplikasi ruang nama;
gunakan Illuminate \ Contracts \ Auth \ MustVerifyEmail;
gunakan Illuminate \ Foundation \ Auth \ User sebagai Authenticatable;
gunakan Illuminate \ Notifications \ Notifiable;
// Ditambah di sini
gunakan Laravel \ Passport \ HasApiTokens;
pengguna kelas meluaskan Pengesahan

// Diubah suai di sini
gunakan HasApiTokens, Boleh Diberitahu;
/ **
* Atribut yang dapat diberikan secara besar-besaran.
*
* array @var
* /
dilindungi $ isi =
'nama', 'e-mel', 'kata laluan',
];
/ **
* Atribut yang harus disembunyikan untuk tatasusunan.
*
* array @var
* /
dilindungi $ tersembunyi = [
'kata laluan', 'ingat_token',
];
/ **
* Atribut yang harus diberikan kepada jenis asli.
*
* array @var
* /
$ cast dilindungi = [
'email_verified_at' => 'datetime',
];

Seterusnya, buka aplikasi / Penyedia / AuthServiceProvider.php untuk mendaftarkan laluan yang diperlukan untuk mengeluarkan dan mencabut token akses. Kaedah Passport :: rute dipanggil dalam kaedah boot dari AuthServiceProvider. Ubah isi fail yang ditunjukkan di bawah.

namespace App \ Penyedia;
gunakan Illuminate \ Foundation \ Support \ Providers \ AuthServiceProvider sebagai ServiceProvider;
gunakan Illuminate \ Support \ Facades \ Gate;
// pasport ditambah di sini
gunakan Laravel \ Passport \ Passport;
kelas AuthServiceProvider meluaskan ServiceProvider

/ ** Pemetaan dasar untuk aplikasi.
*
* array @var
* /
polisi $ dilindungi = [
'App \ Model' => 'Aplikasi \ Polisi \ ModelPolicy',
];
/ **
* Daftarkan sebarang perkhidmatan pengesahan / kebenaran.
*
* @kembali tidak sah
* /
but fungsi awam ()

$ this-> registerPolicies ();
Pasport :: laluan ();
Pasport :: tokensExpireIn (sekarang () -> addDays (15));
Pasport :: refreshTokensExpireIn (sekarang () -> addDays (30));

Seterusnya, buka config \ aplikasi.php dan masukkan baris berikut di pembekal array untuk memasukkan kelas yang diperlukan untuk menggunakan pasport Laravel.

Laravel \ Passport \ PassportServiceProvider :: kelas,

Seterusnya, buka config \ author.php dan tetapkan pemacu API ke pasport di dalam pengawal susunan ditunjukkan di bawah.

'pengawal' => [
'web' => [
'driver' => 'sesi',
'provider' => 'pengguna',
],
'api' => [
'driver' => 'pasport',
'provider' => 'pengguna',
'hash' => salah,
],
],

Melaksanakan Pengawal untuk Pendaftaran dan Pengesahan:

Anda harus membuat pengawal untuk melaksanakan sistem pengesahan menggunakan paket pasport. Jalankan arahan berikut dari folder root projek untuk dibuat ApiController.

$ php artisan make: pengawal ApiController

Pada bahagian seterusnya tutorial ini, tiga kaedah ditambahkan di dalam ApiController untuk membuat pengguna baru, mengesahkan pengguna, dan mendapatkan maklumat terperinci pengguna yang disahkan.

A. Daftar

Pengguna baru boleh dibuat ke dalam pengguna jadual dengan melaksanakan a daftar () kaedah. Tambahkan kod berikut di dalam ApiController untuk melaksanakan API pendaftaran. Nilai medan yang diperlukan untuk membuat pengguna baru diambil oleh argumen, permintaan $ kaedah daftar (). Pengesah kelas digunakan untuk memeriksa nilai medan itu sah atau tidak berdasarkan peraturan pengesahan yang ditentukan. Sekiranya gagal () kaedah kembali benar maka ia akan mengembalikan mesej ralat dalam format JSON. Sekiranya gagal () kaedah kembali palsu maka kata laluan hash akan dihasilkan dan maklumat pengguna baru akan dimasukkan ke dalam jadual pengguna. Token akan dihasilkan setelah membuat pengguna baru dan mesej kejayaan dengan nilai token akan dikembalikan.

daftar fungsi awam (Permintaan $ permintaan)

/ ** Mengesahkan data menggunakan peraturan pengesahan
* /
$ validator = Validator :: make ($ request-> all (), [
'name' => 'diperlukan',
'e-mel' => 'diperlukan | e-mel',
'kata laluan' => 'diperlukan',
]);
/ ** Periksa pengesahan menjadi gagal atau tidak
* /
jika ($ validator-> gagal ())
/ ** Mesej ralat kembali
* /
balas balas () -> json (['error' => $ validator-> ralat ()]);

/ ** Simpan semua nilai medan
* /
$ newuser = $ request-> semua ();
/ ** Buat kata laluan yang dienkripsi menggunakan hash
* /
$ newuser ['password'] = Hash :: make ($ newuser ['password']);
/ ** Masukkan pengguna baru dalam jadual
* /
$ user = Pengguna :: create ($ newuser);
/ ** Buat token akses untuk pengguna
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
/ ** Kembalikan mesej kejayaan dengan nilai token
* /
balasan balas () -> json (['kejayaan' => $ kejayaan], 200);

B. Log masuk:

Mana-mana pengguna boleh disahkan dengan melaksanakan log masuk () kaedah. Tambahkan kod berikut di dalamnya ApiController untuk melaksanakan API log masuk. Medan yang diperlukan untuk mengesahkan pengguna diambil dari permintaan $ daripada log masuk () kaedah. cubaan () kaedah akan memeriksa nilai-nilai e-mel dan kata laluan untuk pengesahan. Sekiranya nilai sepadan dengan nilai pengguna jadual maka rekod pengguna tertentu akan diambil dan nilai token akan dikembalikan. Sekiranya pengesahan gagal maka a Tidak dibenarkan mesej akan dikembalikan.

log masuk fungsi awam (Permintaan $ permintaan)

/ ** Baca kelayakan yang dilalui pengguna
* /
$ kelayakan = [
'email' => $ permintaan-> e-mel,
'kata laluan' => $ permintaan-> kata laluan
];
/ ** Periksa kelayakannya sah atau tidak
* /
jika (auth () -> cubaan ($ kelayakan))
/ ** Simpan maklumat pengguna yang disahkan
* /
$ user = Auth :: user ();
/ ** Buat token untuk pengguna yang disahkan
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
balasan balas () -> json (['kejayaan' => $ kejayaan], 200);
lain
/ ** Mesej ralat kembali
* /
jawapan balik () -> json (['error' => 'Tidak dibenarkan'], 401);

C. Maklumat Pengguna

Anda boleh mendapatkan maklumat terperinci setiap pengguna setelah pengesahan dengan menerapkan API Pengguna. Tambahkan kod berikut ke dalam ApiController untuk mendapatkan maklumat terperinci mana-mana pengguna yang disahkan.

user_info fungsi awam ()

/ ** Dapatkan maklumat pengguna yang disahkan
* /
$ user = Auth :: user ();
/ ** Kembalikan maklumat pengguna
* /
respons balik () -> json (['kejayaan' => $ pengguna], 200);

Laluan API untuk Pengawal:

Buka laluan \ aplikasi.php memfailkan dan mengubah kandungan dengan kod berikut untuk menentukan laluan masuk, daftar pendaftaran, dan perincian laluan untuk perkhidmatan API.

/ ** Laluan untuk masuk API * /
Laluan :: pos ('log masuk', '[dilindungi e-mel]');
/ ** Laluan untuk mendaftar API * /
Laluan :: pos ('daftar', '[dilindungi e-mel]');
/ ** Laluan untuk perincian API pengguna * /
Laluan :: middleware ('auth: api') -> group (function ()
Laluan :: pos ('details', '[email dilindungi] _info');
);

Jalankan arahan berikut untuk memulakan pelayan pengembangan Laravel.

$ php artisan berkhidmat

Uji pengesahan API menggunakan posmen:

Postman adalah alat yang sangat berguna untuk menguji API RESTful. Permintaan HTTP dapat dihasilkan dengan mudah untuk menguji fungsi API dengan menggunakan antara muka pengguna aplikasi ini tanpa menulis sejumlah besar kod untuk mengirim permintaan. Postman dapat menangani pelbagai permintaan dan utiliti HTTP untuk mengembangkan API. Ia mempunyai versi berbayar dan percuma untuk Linux.

Pasang Ejen Postman:

Jalankan arahan berikut dari terminal untuk memasang ejen pos di Ubuntu.

$ sudo snap pasang tukang pos

Buka aplikasi selepas pemasangan. Antara muka berikut akan muncul setelah membuka tetingkap posmen baru.

API Daftar Ujian:

Klik pada buat permintaan pautan untuk membuka tetingkap permintaan. Pelayan pengembangan Laravel berjalan di pelabuhan 8000 secara lalai yang digunakan di sini. Sekiranya anda menggunakan port yang berlainan maka anda harus mengubah nombor port di URL anda. Kaedah POST dipilih dari drop-down dan URL berikut digunakan untuk mengirim permintaan API untuk mendaftar API.

http: // localhost: 8000 / api / daftar

Tiga bidang ditakrifkan sebagai medan wajib untuk pengguna jadual untuk membuat pengguna baru. Ini adalah nama, e-mel, dan kata laluan. Tetapkan tiga kunci dan nilai untuk bidang ini ditunjukkan di bawah dan klik pada hantar butang. The daftar () kaedah ApiController akan dipanggil mengikut laluan jika permintaan tersebut dihantar dengan betul.

Respons berikut akan muncul sekiranya rekod pengguna baru berjaya dimasukkan ke dalam pengguna meja. Kod tindak balas, 200 menunjukkan bahawa permintaan HTTP berjaya dan token dihasilkan setelah memasukkan pengguna baru yang ditunjukkan dalam badan respons dalam format JSON.

API Log Masuk Uji:

Pilih POS kaedah seperti Daftar API yang ditunjukkan sebelum ini. Tetapkan URL berikut di bar alamat untuk mengirim permintaan API untuk Login API.

http: // localhost: 8000 / api / log masuk

Dua bidang wajib untuk mengesahkan mana-mana pengguna berdasarkan rekod pengguna meja. Ini adalah e-mel dan kata laluan. Tetapkan dua kunci dan nilai untuk bidang ini ditunjukkan di bawah dan klik pada hantar butang. The log masuk() kaedah ApiController akan dipanggil mengikut laluan jika permintaan tersebut dihantar dengan betul.

Respons berikut akan muncul sekiranya pengguna berjaya disahkan berdasarkan catatan dari pengguna meja. Kod tindak balas, 200 menunjukkan bahawa permintaan HTTP berjaya. Nilai token dihasilkan setelah mengesahkan pengguna dan mengembalikan badan respons dalam format JSON.

Anda akan mendapat maklum balas berikut apabila kelayakan yang salah diberikan untuk mengesahkan pengguna. 401 kod ralat dihasilkan di sini untuk menunjukkan akses yang tidak dibenarkan.

API Maklumat Pengguna Uji:

Beberapa parameter header diperlukan untuk disiapkan sebelum mengirim permintaan untuk API Detail. Klik pada tajuk tab bahagian permintaan dan tambahkan tiga nilai tajuk untuk mengenal pasti pengguna yang disahkan. Nilai token disalin dari badan tindak balas dan ditetapkan untuk nilai Kebenaran.

Terima: permohonan / json
Jenis Kandungan: aplikasi / json
Kebenaran:
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

Bahagian tajuk bahagian permintaan akan kelihatan seperti gambar berikut. Anda harus menetapkan nilai token anda yang dihasilkan di badan tindak balas ejen posmen anda.

Seterusnya, klik pada Kebenaran tab bahagian permintaan dan pilih Token Pembawa sebagai jenis kebenaran dari Jenis drop-down.

Sekarang, pilih POS kaedah, tetapkan URL berikut di bar alamat. Ia akan memanggil Maklumat Pengguna() kaedah ApiController yang akan mengambil maklumat terperinci pengguna yang disahkan.

http: // localhost: 8000 / api / perincian

Sekiranya nilai token dan maklumat tajuk diberikan dengan betul, maka maklumat pengguna tersebut akan dikembalikan sebagai badan tindak balas dalam format JSON seperti gambar berikut.

Tutorial Video

Kesimpulan:

Pengesahan pasport digunakan di banyak laman web Laravel sekarang untuk ciri-ciri yang berguna. Ini menjadikan sistem pengesahan Laravel lebih selamat daripada pengesahan lalai dan menyediakan perkhidmatan lain yang tidak tersedia dalam pengesahan lalai. Penggunaan asas pasport Laravel dengan proses pemasangan dan konfigurasi dijelaskan dalam tutorial ini dengan betul. Penggunaan ejen pos juga ditunjukkan di sini untuk menguji API. Saya harap pembaca dapat memahami fungsi pakej pasport setelah membaca tutorial ini.

SuperTuxKart untuk Linux
SuperTuxKart adalah tajuk hebat yang direka untuk membawa anda pengalaman Mario Kart secara percuma pada sistem Linux anda. Ia cukup mencabar dan meny...
Tutorial Battle for Wesnoth
The Battle for Wesnoth adalah salah satu permainan strategi sumber terbuka paling popular yang boleh anda mainkan pada masa ini. Bukan hanya permainan...
0 A.D. Tutorial
Daripada banyak permainan strategi di luar sana, 0 A.D. berjaya menonjol sebagai tajuk yang komprehensif dan permainan taktikal yang sangat mendalam w...