Laravel记住令牌没有清除[5.7]

时间:2018-11-07 16:37:36

标签: php laravel

在我的Laravel应用程序中,我正在使用名为admin的附加防护,它具有自己的模型和数据库表。

我在 /config/auth.php

中定义它
'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],

    'admin' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'admins' => [
        'driver' => 'eloquent',
        'model' => App\Admin::class,
    ],
],

'passwords' => [
    'users' => [
        'provider' => 'users',
        'table' => 'password_resets',
        'expire' => 60,
    ],
    'admins' => [
        'provider' => 'admins',
        'table' => 'password_resets',
        'expire' => 15,
    ],
],

然后,我基本上将所有内容从 http / controllers / auth 复制到 http / controllers / auth / admin 。特别是LoginController,ForgotPasswordController和ResetPasswordController。

然后,我重写必要的方法以将防护用作Auth::guard('admin');

现在,除了一件事情外,一切都按预期工作:作为管理员,如果我在登录表单上勾选“记住我”,它将生成一个令牌,如下所示:

enter image description here

如您所见,remember令牌也引用了警卫,如果我要使用普通的auth警卫进行登录,它的内容将类似于_web_

有趣的是,当我注销时发生重定向,但是记住令牌仍然存在,用户不会发生这种情况。

以下是使用网络防护的用户记住令牌的示例:

enter image description here

我可以看到LoginController在此行中使用AuthenticatesUses:

use AuthenticatesUsers;

以下是我在LoginController中重写的受保护方法,如下所示:

/**
 * Define the guard to use for the Authenticated users trait, in this case admin
 *
 * @return void
 */
protected function guard()
{
    return Auth::guard('admin');
}

正如您所看到的,我相信我已经完成了应做的所有事情,但是我看不到任何实际可以清除牢记令牌的地方。

0 个答案:

没有答案