我的系统在空闲后每隔一段时间都会在刷新时返回下面的错误。
我将session.php文件中的会话生存期从120更改为120000000000,如下所示,但似乎不起作用。
<?php
return [
'driver' => env('SESSION_DRIVER', 'file'),
'lifetime' => env('SESSION_LIFETIME', 120000000000),
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/sessions'),
'connection' => null,
'table' => 'sessions',
'store' => null,
'lottery' => [2, 100],
'cookie' => env(
'SESSION_COOKIE',
str_slug(env('APP_NAME', 'laravel'), '_').'_session'
),
'path' => '/',
'domain' => env('SESSION_DOMAIN', null),
'secure' => env('SESSION_SECURE_COOKIE', false),
'http_only' => true,
'same_site' => null,
];
我怎么解决这个问题?
发布于 2020-05-09 17:38:24
必须更改.env文件中的值:
SESSION_LIFETIME=525600
这是在项目的根中,因为它接受这个默认值,在这样做之后,您可以应用命令:php artisan config:clear
和php artisan cache:clear
来接受新的更改。
发布于 2020-05-09 18:45:32
您可以使用laravel内置功能(请记住我)。您可以将一个布尔值作为第二个参数传递给尝试方法,这将使用户通过身份验证,或者您可以手动注销。您可以在
LoginController
中找到这个方法,这将是一个AuthenticatesUsers
特性。此外,您的used表必须包括字符串remember_token列,该列将用于存储“记住我”标记。在最新版本的laravel中,默认情况下包括这些东西。
if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) {
// The user is being remembered...
}
另一种方法是在您的
SESSION_LIFETIME=120
文件中设置.env
。我建议设定几年,比如68岁,相当于35791394
分钟。因此,将其设置为SESSION_LIFETIME=35791394
。设置会话时间后,需要运行这些命令。
https://stackoverflow.com/questions/61700657
复制相似问题