W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在開始之前,請通過 Composer 包管理器安裝 Passport:
composer require laravel/passport
Passport 服務(wù)提供器使用框架注冊自己的數(shù)據(jù)庫遷移目錄,因此在注冊提供器后,就應(yīng)該運(yùn)行 Passport 的遷移命令來自動(dòng)創(chuàng)建存儲(chǔ)客戶端和令牌的數(shù)據(jù)表:
php artisan migrate
接下來,運(yùn)行 passport:install
命令來創(chuàng)建生成安全訪問令牌時(shí)所需的加密密鑰,同時(shí),這條命令也會(huì)創(chuàng)建用于生成訪問令牌的「個(gè)人訪問」客戶端和「密碼授權(quán)」客戶端:
php artisan passport:install
技巧:如果您想使用「uuid」作為 Passport「客戶端」模型的主鍵,而不是自動(dòng)遞增的整數(shù),請使用 選項(xiàng)
uuids
來安裝 Passport。
上面命令執(zhí)行后,請將 Laravel\Passport\HasApiTokens
Trait 添加到 App\Models\User
模型中,這個(gè) Trait 會(huì)給你的模型提供一些輔助函數(shù),用于檢查已認(rèn)證用戶的令牌和使用范圍:
<?php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Passport\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
}
接下來,在 AuthServiceProvider
的 boot
方法中調(diào)用 Passport::routes
函數(shù)。這個(gè)函數(shù)會(huì)注冊發(fā)出訪問令牌并撤銷訪問令牌、客戶端和個(gè)人訪問令牌所必需的路由:
<?php
namespace App\Providers;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate;
use Laravel\Passport\Passport;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
'App\Models\Model' => 'App\Policies\ModelPolicy',
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
if (! $this->app->routesAreCached()) {
Passport::routes();
}
}
}
最后,將配置文件 config/auth.php
中授權(quán)看守器 guards
的 api
的 driver
選項(xiàng)改為 passport
。此調(diào)整會(huì)讓你的應(yīng)用程序在在驗(yàn)證傳入的 API 的請求時(shí)使用 Passport 的 TokenGuard
來處理:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: