在我的应用程序中,如果在一台计算机上登录,则需要在其他计算机上注销。 我正在使用Invalidating Sessions On Other Devices
实现该功能。 工作正常但是问题是,在多个设备上交替登录后,它不是加载主URL,而是上一个加载的页面。
public function authenticated(Request $request, $user)
{
$data = $request->all();
if (Spark::usesTwoFactorAuth() && $user->uses_two_factor_auth) {
return $this->redirectForTwoFactorAuth($request, $user);
}
Auth::logoutOtherDevices($request->password);
return redirect()->intended($this->redirectPath());
}
包含在我的LoginCOntroller中
答案 0 :(得分:1)
intended()
就是这样做的。如果您检查来源,
/**
* Create a new redirect response to the previously intended location.
*
* @param string $default
* @param int $status
* @param array $headers
* @param bool $secure
* @return \Illuminate\Http\RedirectResponse
*/
public function intended($default = '/', $status = 302, $headers = [], $secure = null)
{
$path = $this->session->pull('url.intended', $default);
return $this->to($path, $status, $headers, $secure);
}
...您将看到它将尝试从会话中提取预期的URL。如果您不满意,可以将其删除。
public function authenticated(Request $request, $user)
{
$data = $request->all();
if (Spark::usesTwoFactorAuth() && $user->uses_two_factor_auth) {
return $this->redirectForTwoFactorAuth($request, $user);
}
Auth::logoutOtherDevices($request->password);
return redirect($this->redirectPath());
}
您还需要确保LoginController中有一个指向首页的$redirectTo
属性。
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/';