php - Laravel 在用户层自定义 session.lifetime

标签 php session laravel-5 laravel-5.2

我正在覆盖其中一个中间件(对于 Laravel 网络应用程序)中的 session.timeout 值,但它似乎不会影响 session 超时。尽管如果我调试它会显示我已覆盖的值。

Config::set('session.lifetime', 1440);

默认值如下:

'lifetime' => 15,

我正在工作的网站对大多数用户来说 session 生命周期非常短,但对于选定的用户,我想提供更长的 session 生命周期。

最佳答案

似乎实现动态 lifetime 值的唯一方法是在 session 启动之前在中间件中设置值。否则为时已​​晚,因为应用程序 SessionHandler 已经使用默认配置值实例化了。

namespace App\Http\Middleware;

class ExtendSession
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, $next)
    {
        $lifetime = 2;
        config(['session.lifetime' => $lifetime]);
        return $next($request);
    }
}

然后在kernel.php文件中,在StartSession之前添加这个类。

\App\Http\Middleware\ExtendSession::class,
\Illuminate\Session\Middleware\StartSession::class,

关于php - Laravel 在用户层自定义 session.lifetime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45247239/

相关文章:

javascript - 如何将 php 数组 block 传递给 jquery 函数?

php - 如何在 Behat 选择司机?

node.js - 将快速 session 传递给 socket.io

php - Laravel 5.1 中未定义的默认命名空间

php - 如何在 Laravel 5 中定义可跨配置文件使用的常量?

php - 使用wordpress在外部数据库上创建用户

php - 从 php 调用 bash 脚本

javascript - 将 php session 变量从 jquery、ajax 传递到 PHP 谢谢页面

php登录系统突然停止工作

php - Laravel 模型和 Controller 文件命名