我正在覆盖其中一个中间件(对于 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/