我开始使用Laravel,它很棒。很多有用的功能等。但是我对csrf_token
有疑问。我的会话时间是默认的120分钟,让我们说我登录,浏览器选项卡保持打开状态,我没有为120分钟做任何事情并且过期,这意味着我必须再次登录。在120分钟不活动后在页面上执行某些操作时,需要使用POST方法对用户进行身份验证,我收到mismatch token exception
错误。现在我需要解决这个问题,因为用户确实有可能在不做任何事情的情况下打开浏览器标签。有谁知道如何解决这个问题?
答案 0 :(得分:1)
在app/Exceptions/Handle.php
中,将render
函数替换为此函数:
public function render($request, Exception $e)
{
if ($e instanceof \Illuminate\Session\TokenMismatchException) {
return redirect()
->back()
->withInput($request->except('password', '_token'))
->withError('Validation token has expired. Please try again');
}
return parent::render($request, $e);
}
它将使用新令牌重定向到同一页面。
答案 1 :(得分:0)
token mismatch
。
您应该做的是,如果会话过期,请登录页面(例如,超过120分钟),因此CSRD令牌将被续订,并且不会有任何问题。
答案 2 :(得分:0)
我想你可以试试这个:
“X-CSRF-TOKEN”是将以下代码添加到主布局中,并继续正常进行ajax调用:
<meta name="csrf-token" content="{{ csrf_token() }}" />
<script type="text/javascript">
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
</script>
希望这对你有用!!!
答案 3 :(得分:0)
将ur php更改为alt ...我做了,现在可以正常使用
例如,将cpanel中的PHP更改为:从ea-php74更改为alt-php74
您将再也看不到
只需尝试一下并完成:)
对于初学者:
Cpanel-> MultiPHP Manager --->从ea-php74到alt-php74