Laravel cookie会话生命周期

Kol*_*sar 3 cookies session lifetime laravel

我使用我的Laravel作为OAuth2客户端,我需要保留令牌我的cookie.所以,我将驱动程序设置为cookie并保持生命周期120的默认值

当任何用户检查记住我登录时,我试图用代码改变生命周期:

    $lifetime = time() + 60 * 60 * 24 * 365;// one year
    Config::set('session.lifetime', $lifetime);
Run Code Online (Sandbox Code Playgroud)

但没有成功.在任何其他控制器中,我检查了生命值以及每次获得默认值.

\Log::info(\Config::get('session.lifetime'));
Run Code Online (Sandbox Code Playgroud)

编辑#1:

这够了吗?

if(Input::has('rememberMe')) {
   $lifetime = time() + 60 * 60 * 24 * 365; // one year
   Session::put('Expires', $lifetime);
}
Run Code Online (Sandbox Code Playgroud)

编辑#2:

我将acess_token键与上面示例中的Expires相同,如:

public function signin() {

    /**
     * Code for getting *client_code* and *client_state* from API server
     */

    $access_token = $this->provider->getAccessToken('authorization_code', $form_data);

    // $access_token is object and contain all data (access_token, refresh_token, expires)
    Session::put('access_token', $access_token);
    Session::put('refresh_token', $access_token->refreshToken);
    Session::put('token_expires', $access_token->expires);

    if(Input::has('rememberMe')) {
       $lifetime = time() + 60 * 60 * 24 * 365; // one year
       Session::put('expires', $lifetime);
    }


    return Response....

}
Run Code Online (Sandbox Code Playgroud)

这是'默认'Laravel会话(我在/app/config/session.php中将驱动程序从文件更改为cookie).我知道生活时间应该在/app/config/session.php文件中设置,但是你可以看到我需要更长的续航时间来记住我的选项

The*_*pha 5

实际上,当您在以下情况下设置这样的值时Controller:

$lifetime = time() + 60 * 60 * 24 * 365;// one year
Config::set('session.lifetime', $lifetime);
Run Code Online (Sandbox Code Playgroud)

它不是更新文件中的值,而是仅为当前请求(在内存中)设置它,并且当您使用另一个Controller/Request检查值时,如下所示:

Config::get('session.lifetime');
Run Code Online (Sandbox Code Playgroud)

您从文件系统中获取原始值的值.它在文档中提到如下:

在运行时设置的配置值仅为当前请求设置,不会转移到后续请求.