Laravel 8 添加自定义用户提供者
如果不使用传统的关系数据库存储用户,就需要使用自己的身份验证用户提供者扩展 Lavarel。可以使用 Auth
facade 的 provider
方法自定义用户提供器:
<?php
namespace App\Providers;
use App\Extensions\RiakUserProvider;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Auth;
class AuthServiceProvider extends ServiceProvider
{
/**
* 注册任意应用身份验证 / 授权服务
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Auth::provider('riak', function ($app, array $config) {
// 返回 Illuminate\Contracts\Auth\UserProvider... 实例...
return new RiakUserProvider($app->make('riak.connection'));
});
}
}
一旦使用 provider
方法注册完毕,就可以在 auth.php
配置文件中切换到新的用户提供者。先定义一个使用新驱动的 provider
:
'providers' => [
'users' => [
'driver' => 'riak',
],
],
最后,你就可以在 guards
配置中使用这个提供者:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
],