Laravel 8 安裝

2021-07-26 09:46 更新

在開始之前,請通過 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;
} 

接下來,在 AuthServiceProviderboot 方法中調(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)看守器 guardsapidriver 選項(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',
    ],
], 


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)