Laravel viaRemember总是返回false

时间:2018-03-24 06:05:50

标签: php laravel

我在保持用户登录方面遇到了麻烦,所以我做了一些测试,我注意到函数viaRemember总是返回false

这是我的登录控制器功能,其中删除了所有不相关的代码:

public function postSignin(Request $request, AppMailer $mailer) {
    $this->validate($request, [
        'email' => 'required',
        'password' => 'required',
    ]);     

    $username = $request->get('email');
    $password = $request->get('password');

    $field = filter_var($username,FILTER_VALIDATE_EMAIL)? 'email': 'username';      

    Auth::attempt([$field => $username, 'password' => $password], true);


    return redirect()->back()->with('info', 'You are now signed in.');
}       

工作正常。如您所见,Auth::attempt中的第二个参数默认设置为true

在我的数据库中,“remember_token”的值在每次登录时都会更改,因此似乎正在运行。但是,如果我执行dd(Auth::viaRemember());,结果将始终为false

我也尝试更改我的config/session.php设置,切换一些值,但这似乎没有做太多。

为什么会这样?

1 个答案:

答案 0 :(得分:0)

我认为你误解了这个功能。 “viaRemember”用于检查返回的用户是否通过“记住我”功能进行了身份验证。 绝对是第一次登录时“记住我”,这将返回false。尝试关闭浏览器并再次打开它将返回true。

或者您可以通过进入 config \ session.php 并更改

来实现其行为
'expire_on_close' = false

为真,一切都变得很好,就像你想的那样