【问题标题】:Laravel 5.5: How to Keeping Laravel User session alive after system is idleLaravel 5.5:如何在系统空闲后保持 Laravel 用户会话处于活动状态
【发布时间】:2020-05-09 17:10:11
【问题描述】:

我的系统每隔一段时间处于空闲状态,刷新时都会返回以下错误。

图片在这里: Laravel Error Displayed after a given time of inactivity of a system

我在 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,

];

我该如何解决这个问题?

【问题讨论】:

    标签: php laravel-5


    【解决方案1】:

    您必须更改 .env 文件中的值:

    SESSION_LIFETIME=525600

    它位于项目的根目录中,因为它采用此默认值,在执行此操作后,您可以应用以下命令:php artisan config:clearphp artisan cache:clear 来进行新的更改。

    【讨论】:

      【解决方案2】:

      您可以使用 laravel 内置功能(记住我)。您可以将布尔值作为第二个参数传递给尝试方法,这将使用户保持身份验证,或者您可以手动注销。您可以在 LoginController 中找到此方法,该方法将位于 AuthenticatesUsers 特征中。此外,您的 users 表必须包含字符串 remember_token 列,该列将用于存储“记住我”令牌。在最新版本的 laravel 中,这些东西是默认包含的。

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

      替代方法是在您的.env 文件中设置SESSION_LIFETIME=120。我建议设置几年,比如 68 年,等于 35791394 分钟。所以设置为SESSION_LIFETIME=35791394。设置会话时间后,您需要运行这些命令。

      1. php artisan config:cache 或 php artisan config:clear
      2. php artisan 缓存:清除

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-23
        • 2018-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-29
        • 2019-12-28
        相关资源
        最近更新 更多