登录会话在Laravel 6中不持久

问题描述 投票:0回答:1

最近我将laravel项目从5.1降级到6。我像这样升级项目->

  • 首先,我创建了新的laravel 6项目。
  • 然后,我将代码从旧版本复制粘贴到新版本。

同时这样做,我正面临这个问题。我使用了单独的控制器和路由来验证用户。在验证用户身份时,登录会话不会持续存在,因此它将再次将我重定向到登录页面。我检查了登录凭据是否正确,并且Auth::attempt也返回true。但是,当我将其重定向到我想要的路由时,它会将我发送到登录页面。

public function signInAction(Request $request)
    if (Auth::attempt($loginCredentials)) {
        $logonId = $secUserLogon[0]->logon_id;
        $request->session()->put('sessLogonId', $logonId); // this session data in not available later on

        return redirect()->intended(route('home::onlineInfo'));
    }
}

我找到了一种解决方法,这似乎不正确。我已经在Auth::attempt中将true作为第二个参数传递了,这使我可以登录用户。但是,如果我在会话中添加了任何内容,它也不会持续存在,并且如果我实现了记住我的功能,那么如果用户通过false它将无法正常工作。谁能帮我解决这个问题?

php laravel
1个回答
0
投票

从您的代码示例中,您似乎没有将$loginCredentials传递给singInAction()函数,因此Auth::attempt($loginCredentials)将返回null。尽管这可能仅仅是因为它是您的示例。

关于您的会话,您是否尝试过使用全局session()帮助器?这可能更可靠。 https://laravel.com/docs/6.x/session#storing-data

© www.soinside.com 2019 - 2024. All rights reserved.