微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Laravel在用户级别定制session.lifetime

我正在覆盖其中一个中间件(对于Laravel Web应用程序)的session.timeout值,但它似乎没有影响会话超时.虽然如果我调试它显示值我已覆盖.

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

认值如下:

'lifetime' => 15,

我正在处理的网站对于大多数用户而言会话生命周期非常短,但对于选定的用户,我希望提供延长的会话生命周期.

解决方法:

似乎实现动态生命周期值的唯一方法是在会话启动之前在中间件中设置值.否则为时已​​晚,因为应用程序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,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐