Laravel CSRF令牌到期

时间:2017-05-18 10:34:41

标签: javascript laravel csrf-protection

我是Laravel 5.4的新手,刚刚创建了一个登录表单。我注意到的事情是,如果我离开登录大约2小时并返回,我的csrf令牌将会过期。是否可以显示会话已过期的javascript警告框,单击确定按钮后会再次进入登录页面?

1 个答案:

答案 0 :(得分:-1)

您可以在视图中执行类似操作。使用auth辅助函数。

@if (! auth()->check())
      <script type="text/javascript">
                alert('session expired!!')
      </script>
@endif

修改:

好的,上面的函数只在页面加载时运行一次并且不符合OPs要求,所以为了解决这个问题,我们可以尝试直接捕获后端的token-mismatch异常。

因此,在render()的方法/app/Exceptions/Handler.php中,您可以尝试以下内容:

if ( $e instanceof \Illuminate\Session\TokenMismatchException ) {
    return redirect()->route('login');
}