Laravel 5.6对数据库中的不同表进行验证

时间:2018-06-28 09:38:22

标签: php laravel authentication

Laravel 5.6使用Auth及其数据库表-默认情况下为'users'。 我需要创建2个不同的用户-简单的用户和用户admin,因此他们每个人都将使用自己的Auth方法并连接到自己的数据库表。

例如:Auth :: user(); -与表“用户” 我需要创建另一个身份验证,例如Auth :: admin(); -使用表“ admin”

我该怎么做?也许复制并创建另一个Auth?

(我正在使用laravel的api和护照)。

我不需要在users表中创建新字段。我需要创建一个新表。

1 个答案:

答案 0 :(得分:1)

您必须创建一个用于管理员身份验证的中间件。为此,请输入以下内容:

php artisan make:middleware Admin

这将创建一个名为Admin.php的中间件文件

在Kernel.php上注册中间件

'admin' => \App\Http\Middleware\Admin::class

将管理中间件添加到route.php文件中的路由

get('protected', ['middleware' => ['auth', 'admin'], function() {
    return "this page requires that you be logged in and an Admin";
}]);

将isAdmin()方法添加到用户模型以检查其是否为admin。

public function isAdmin()
{
    return $this->admin; // this looks for an admin column in your users table
}