Tutorial dibahagikan kepada dua bahagian: pemasangan dan konfigurasi perpustakaan, diikuti dengan mewujudkan dan memakan sumber sampel.
Konfigurasi pelayan
Butiran bahagian ini memasang dan mengkonfigurasi komponen yang diperlukan untuk pasport berfungsi dengan Laravel.
Memasang Perpustakaan Pasport Laravel
Gunakan komposer untuk memasang perpustakaan:
composer require laravel/passport
Membolehkan perkhidmatan pasport
Laravel menggunakan penyedia perkhidmatan untuk menguruskan perkhidmatan aplikasi. Untuk membolehkan pasport, anda perlu menambah pembekal perkhidmatannya kepada. (Jika tidak dikenali dengan penyedia perkhidmatan Laravel, rujuk kepada sumber pengantar yang relevan.) Secara kritis, anda juga mesti mendaftarkan laluan pasport (dalam kaedah config/app.php
boot
) dan menjalankan perintah app/Providers/AuthServiceProvider.php
. Perintah ini juga membolehkan penciptaan pelanggan. Mari buat pelanggan demo. php artisan passport:install
php artisan passport:client
mari kita asumsikan output berikut:
<code>New client created successfully. Client ID: 3 Client secret: 1BT1tNj0Are27IGvIZe4lE2jRjtiVt0fmtaWBe8m</code>
3 3
ingat untuk menggantikan ruang letak seperti oauth2_client
dan
Seterusnya, buat oauth2_client/callback.php
:<?php $query = http_build_query([ 'client_id' => '3', 'redirect_uri' => 'http://localhost/oauth2_client/callback.php', 'response_type' => 'code', 'scope' => '', ]); header('Location: http://your-laravel-site-url/oauth/authorize?' . $query); ?>
client_id
Sekali lagi, laraskan URL dan kelayakan seperti yang diperlukan. redirect_uri
aliran kerja
Pengguna berinteraksi dengan dua aplikasi: Aplikasi Laravel (dengan akaun sedia ada) dan klien pihak ketiga (auth_redirection.php dan callback.php).<?php if (isset($_REQUEST['code']) && $_REQUEST['code']) { $ch = curl_init(); $url = 'http://your-laravel-site-url/oauth/token'; $params = [ 'grant_type' => 'authorization_code', 'client_id' => '3', 'client_secret' => '1BT1tNj0Are27IGvIZe4lE2jRjtiVt0fmtaWBe8m', 'redirect_uri' => 'http://localhost/oauth2_client/callback.php', 'code' => $_REQUEST['code'], ]; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $params_string = ''; if (is_array($params) && count($params)) { foreach ($params as $key => $value) { $params_string .= $key . '=' . $value . '&'; } rtrim($params_string, '&'); curl_setopt($ch, CURLOPT_POST, count($params)); curl_setopt($ch, CURLOPT_POSTFIELDS, $params_string); } $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); if (isset($response->access_token) && $response->access_token) { $access_token = $response->access_token; $ch = curl_init(); $url = 'http://your-laravel-site-url/api/user/get'; $header = ['Authorization: Bearer ' . $access_token]; $query = http_build_query(['uid' => '1']); curl_setopt($ch, CURLOPT_URL, $url . '?' . $query); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); var_dump($result); } } ?>
http://localhost/oauth2_client/auth_redirection.php
. http://localhost/oauth2_client/callback.php
dengan kod kebenaran. callback.php
Menukar kod untuk token akses. http://your-laravel-site-url/api/user/get
). Kesimpulan
Tutorial ini mempamerkan kemudahan penggunaan Laravel Passport dalam menubuhkan pelayan OAuth2. Untuk sumber pembangunan Laravel selanjutnya, terokai Envato Market.
Atas ialah kandungan terperinci Sediakan pelayan OAuth2 menggunakan pasport di laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!