Подтвердить что ты не робот

Laravel 4 Запомнить меня истекает время

Я новичок в Laravel и задал вопрос о моей функции.

Я успешно включил функцию "запомнить меня" , добавив второй аргумент в метод Auth:: try, например:

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

Как отмечено в документации, это позволяет запомнить меня неопределенно или до тех пор, пока пользователь не выйдет вручную.

Я действительно хочу установить дату истечения срока действия функции "запомнить меня" .

Глядя на консоль, я вижу, что включение "помнить меня" генерирует файл cookie remember_ {HASH}.

Каким будет лучший способ переписать дату истечения срока действия, указанную в этом файле cookie, чтобы сказать неделю в будущем? В настоящее время cookie устанавливает дату в прошлом, что делает ее последней навсегда.

Имейте в виду, что мне пришлось установить "lifetime" = > 0 в session.php, чтобы я мог вызвать функцию "запомнить меня" , основанную на предпочтениях пользователя, поэтому изменение этого на неделю не помогло бы в моем случае.

Спасибо!

4b9b3361

Ответ 1

Я не знаю, хорошо ли это для этого или нет, но если вы отчаянно пытаетесь установить время истечения срока, чтобы запомнить меня, вы можете попробовать это, но это работает для меня.

Пусть 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','expiration time');