W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
你可以使用 Auth
facade 的 extend
方法來定義自己的身份驗(yàn)證看守器。你應(yīng)該在 服務(wù)提供器 中調(diào)用 extend
方法。由于 Laravel 已經(jīng)附帶了 AuthServiceProvider
,我們可以將代碼放在該提供器中:
<?php
namespace App\Providers;
use App\Services\Auth\JwtGuard;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Auth;
class AuthServiceProvider extends ServiceProvider
{
/**
* 注冊任何應(yīng)用程序驗(yàn)證/授權(quán)服務(wù)
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Auth::extend('jwt', function ($app, $name, array $config) {
// 返回一個 Illuminate\Contracts\Auth\Guard 實(shí)例...
return new JwtGuard(Auth::createUserProvider($config['provider']));
});
}
}
正如你在上面的示例中所看到的,傳遞給 extend
方法的回調(diào)應(yīng)該返回一個實(shí)現(xiàn) Illuminate\Contracts\Auth\Guard
接口的實(shí)例。這個接口包含了一些你需要在自定義的看守器中實(shí)現(xiàn)的方法。當(dāng)你的自定義看守器定義完成之后,你可以在 auth.php
配置文件的 guards
配置中使用這個看守器:
'guards' => [
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: