微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Laravel 4记住我到期时间

我对Laravel很新,有一个关于记住我的功能的问题.

我已经成功启用了“记住我”功能,通过附加第二个参数到Auth ::尝试方法,如此.

if (Auth::attempt(array('email' => $email,'password' => $password),true))
{
    // The user is being remembered...
}

如文档中所述,这可以无限期地记住我,或者直到用户手动注销.

我本来希望在“记住我”功能上设置一个到期日.

看着控制台,我可以看到,启用“记住我”会生成一个remember_ {HASH} cookie.

覆盖此cookie中指定的到期日的最佳方法是将来说一个星期?该cookie当前设置过去的日期,这使得它永远是最后的.

请记住,我必须设置’生命’=> 0在sessions.PHP中,以便我可以触发记住我的功能,基于用户偏好,所以将其改为一周将不会在我的情况下工作.

谢谢!

我不知道它是否是一个很好的方法,但是如果你绝望设置过期时间记住我,你可以尝试这个,但它对我来说是有效的.

让Laravel的Auth :: atempt($credential,true)做正常的事情,就是把记住我的到期时间设定为5年

我们将在App :: after()方法中更改此内容,因此在您的filters.PHP文件中找到App :: after()方法并更改Cookie过期时间

App::after(function($request,$response)
{
  if ( Auth::check()){
      $ckname=Auth::getRecallerName(); //Get the name of the cookie,where remember me expiration time is stored
      $ckval=Cookie::get($ckname); //Get the value of the cookie
      return $response->withCookie(Cookie::make($ckname,$ckval,360)); //change the expiration time
  }
});

注意:Cookie :: make(‘name’,’value’,’过期时间’);

原文地址:https://www.jb51.cc/laravel/139670.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。