Php Laravel 5.6:强制注销记住我登录

Php Laravel 5.6:强制注销记住我登录,php,session,cookies,laravel-5.6,remember-me,Php,Session,Cookies,Laravel 5.6,Remember Me,我的应用程序中有一个自定义登录控制器,可防止每个用户进行多个会话。如果用户从其他设备/浏览器登录,则会注销用户: public function authenticated(Request $request, $user) { $previous_session = $user->session_id; if ($previous_session) { session()->getHandler()->destroy($previous_session);

我的应用程序中有一个自定义登录控制器,可防止每个用户进行多个会话。如果用户从其他设备/浏览器登录,则会注销用户:

public function authenticated(Request $request, $user) {
  $previous_session = $user->session_id;

  if ($previous_session) {
    session()->getHandler()->destroy($previous_session);
  }

  auth()->user()->session_id = session()->getId();
  auth()->user()->save();

  return redirect(session()->pull('from', $this->redirectTo));
}
不管会话驱动程序是什么,此代码都会在
users
表中查找
session\u id
,并销毁与其关联的会话


但是,如果用户在启用“记住我”复选框的情况下登录,这将不起作用。用户使用以前的设备/浏览器保持登录状态。在第二次登录后,我怎么能告诉拉威尔忘记这一点?记得我吗?谢谢。

您必须使
用户
数据库表中的
记住令牌
无效或循环

当您调用
Auth::logout()
时,这会自动发生

记住令牌
也可以手动失效,类似于Laravel处理它的方式:

protected function cycleRememberToken(AuthenticatableContract $user)
{
    $user->setRememberToken($token = Str::random(60));

    $this->provider->updateRememberToken($user, $token);
}

来源:laravel/framework/src/illumb/Auth/SessionGuard.php

您必须使
用户
数据库表中的
记忆令牌无效或循环

当您调用
Auth::logout()
时,这会自动发生

记住令牌
也可以手动失效,类似于Laravel处理它的方式:

protected function cycleRememberToken(AuthenticatableContract $user)
{
    $user->setRememberToken($token = Str::random(60));

    $this->provider->updateRememberToken($user, $token);
}
来源:laravel/framework/src/illumb/Auth/SessionGuard.php