Laravel 8 添加自定义用户提供者

2021-07-17 17:18 更新

如果不使用传统的关系数据库存储用户,就需要使用自己的身份验证用户提供者扩展 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',
    ],
],
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号