gpt4 book ai didi

session - Laravel cookie session 生命周期

转载 作者:行者123 更新时间:2023-12-01 08:58:23 25 4
gpt4 key购买 nike

我使用我的 Laravel 作为 OAuth2 客户端,我需要保留 token i cookie。因此,我将驱动程序设置为 cookie 并保留生命周期 120 的默认值

当任何用户在登录时检查记住我时,我尝试使用代码更改生命周期:

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

但没有成功。在任何另一个 Controller 中,我检查了生命周期的值,并且每次获得默认值。
\Log::info(\Config::get('session.lifetime'));

编辑 #1:

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

编辑 #2:

我将 access_token key 放在与上面示例中的 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....

}

这是“默认”的 Laravel session (我将驱动程序从文件更改为/app/config/session.php 中的 cookie)。我知道生命时间应该在/app/config/session.php 文件中设置,但正如你所看到的,我需要更长的生命时间来记住我选项

最佳答案

实际上,当您在 Controller 中设置这样的值时:

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

它不会更新文件中的值,而是仅为当前请求(在内存中)设置它,当您使用另一个 Controller /请求检查值时,如下所示:
Config::get('session.lifetime');

您正在从文件系统的原始值中获取值。它在文档中提到,如下所示:

Configuration values that are set at run-time are only set for the current request, and will not be carried over to subsequent requests.

关于session - Laravel cookie session 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24317313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com