gpt4 book ai didi

php - Laravel 在注销时清除整个 session

转载 作者:行者123 更新时间:2023-12-05 08:54:29 26 4
gpt4 key购买 nike

我在我的 session 中保留了不同的东西,当用户登录和注销时我都使用它们。问题是当用户注销时,laravel 会清除我在 session 中存储的所有内容:

发生这种情况是因为 laravel 核心类 AuthenticatesUsers 看起来像这样:

/**
* Log the user out of the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function logout(Request $request)
{
$this->guard()->logout();

$request->session()->invalidate();

return redirect('/');
}

因为我不想更改核心类,我怎样才能避免在用户注销时丢失我的 session 数据?

最佳答案

默认的 LoginController.php 使用特征 AuthenticatesUsers.php 。所以将此代码复制到 LoginController.php 以覆盖它。

public function logout(Request $request)
{
$data = session()->get('cart');
$this->guard()->logout();

$request->session()->invalidate();
$request->session()->regenerate();
session()->put('cart', $data);
return $this->loggedOut($request) ?: redirect('/');
}

关于php - Laravel 在注销时清除整个 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49831619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com