php - Laravel 5.3 在哪里保存授权数据?

标签 php mysql authentication laravel-5

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

文档似乎没有清楚地涵盖多授权场景。

我希望能够这样调用:

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

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

最佳答案

首先,当你想使用单独的表/模型进行身份验证时,你应该添加一个新的守卫。它可以在您的 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)) {
    //
}

引用 - 检查访问特定的保护实例 here

关于php - Laravel 5.3 在哪里保存授权数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40278944/

相关文章:

linux - 来自私有(private)网络的 Solr 连接

php - 最安全的 PHP 'access denied' 方法

php - 用于匹配最低密码要求和其他字符的正则表达式

php - 如何检查 paypal iPN 是否响应(用于保护黑客)?

php - MKDIR php 命令不创建文件夹

mysql - 有没有一个技巧可以让 MySQL 在 UPDATE 语句的 SET 子句中使用 "ignore"结尾的逗号?

php - 如何在不使用限制超过 1 的 MySql 查询循环的情况下获取最后一行的值

java - Android 上的 Google App Engine (GAE) 响应代码和 cookie

php - ereg 的预期生命周期,迁移到 preg

php - 让 PHP 三元运算符引用自身