Я довольно новичок в 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, чтобы я мог вызвать функцию «запомнить меня», основанную на предпочтениях пользователей, поэтому изменение этого на неделю не помогло бы в моем случае.
Благодаря!
Я не знаю, есть ли у него хороший способ сделать это или нет, но если вы отчаянно пытаетесь установить время истечения срока, чтобы запомнить меня, вы можете попробовать это, но это работает для меня.
Пусть аутентификация larvel's 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');