Laravel5 CSRF Token 过期时间

Posted by

Laravel 会对所有的 POST 数据默认开启 CSRF 防护,实现的机制是检测 POST 数据里的 _token 信息。

会在每一次 Session 创建时重新生成,也就是说,跟会话的时间一致,Laravel 默认为 120 分钟,可以通过修改 config/session.php 文件里的 lifetime 修改.

config/session.php.

/*
    |--------------------------------------------------------------------------
    | Session Lifetime
    |--------------------------------------------------------------------------
    |
    | Here you may specify the number of minutes that you wish the session
    | to be allowed to remain idle before it expires. If you want them
    | to immediately expire on the browser closing, set that option.
    |
    */

    'lifetime' => env('SESSION_LIFETIME', 120),

    'expire_on_close' => false,
session文件

config/session.php 配置的 lifetime 选项不应配置过高的值。

因 Laravel 默认会给所有访问建立会话,设置过长时间,例如说两年,两年内所有用户访问,包括未登录的游客,都会产生会话数据。如果刚好你的网站有不小的流量,很快系统资源就会被消耗完。