【问题标题】:Where does Laravel 5.3 keep the Auth data?Laravel 5.3 将 Auth 数据保存在哪里?
【发布时间】:2017-03-09 19:17:02
【问题描述】:

好的,我的应用程序中发生了一些自定义身份验证。而且我们有一个可以工作的寄存器控制器,但是此时调用 Auth::facade 会调用错误的表。由于我有两个身份验证表,而不仅仅是默认的用户表,我如何注册一个单独的身份验证门面来调用新的身份验证表。

该文档似乎没有清楚地涵盖 Multi-Auth 场景。

我希望能够这样称呼:

 if (Auth::attempt(['Username' => $request['Username'], 'Password' => $request['Password']])) {
            return redirect()->route('agencydash');
        }
        return redirect()->back();
    }

而不是检查用户表(它目前这样做),我想检查公司的表。

【问题讨论】:

    标签: php mysql authentication laravel-5


    【解决方案1】:

    首先,当您想使用单独的表/模型进行身份验证时,您应该添加一个新的保护。可以在您的config/auth.php 文件中完成。

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
        'company' => [
            'driver' => 'session',
            'provider' => 'companies',
        ]
    ],
    
    ...
    
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
        'companies' => [
            'driver' => 'eloquent',
            'table' => App\Company::class,
        ],
    ],
    

    然后,您可以在对用户进行身份验证时使用自定义保护。

    if (Auth::guard('company')->attempt($credentials)) {
        //
    }
    

    Ref - 检查 访问特定的 Guard 实例 here

    【讨论】:

    • 是的,这有助于将两个和两个放在一起。干杯。
    猜你喜欢
    • 1970-01-01
    • 2017-02-03
    • 2013-11-16
    • 2012-03-09
    • 1970-01-01
    • 2012-07-07
    • 2011-10-29
    • 2017-06-23
    • 2015-06-06
    相关资源
    最近更新 更多