【发布时间】:2018-02-11 00:04:59
【问题描述】:
Laravel 创建新的会话令牌,但在使用 csrf_token() 时使用旧令牌。在验证时,它使用新创建的session_token(),从而给出The page has expired due to inactivity.Please refresh and try again. 或TokenMismatchException。
在本地主机上完美运行,但不能在实时服务器上运行
我已清除所有缓存,但无法使其工作
composer dump-autoload
php artisan optimize
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
在发布请求之前,这是token
因此,csrf_token() 也使用相同的方法,但是在进行 post 调用时,请求正文使用上述令牌,而 session_token 使用新令牌(注意:会话令牌不会每次都创建新令牌)
发布请求后
Session.php
<?php
return [
'driver' => env('SESSION_DRIVER', 'file'),
'lifetime' => 1200,
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/sessions'),
'connection' => null,
'table' => 'sessions',
'store' => null,
'lottery' => [2, 100],
'cookie' => 'laravel_session',
'path' => '/',
'domain' => env('SESSION_DOMAIN', null ),
'secure' => env('SESSION_SECURE_COOKIE', false),
'http_only' => true,
];
storage/framework/session 有写权限。
表格
<form method="POST" action="{{ route('login') }}" role="form">
{{ csrf_field() }}
<input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required
autofocus>
<button type="submit" class="btn btn-green">Sign in</button>
</form>
TIA
【问题讨论】:
-
您是否尝试过使用 laravel 配方来声明您的表单,例如 {{ Form::model($role, array('route' => array('roles.update', $role->id) , 'method' => 'PUT', 'class'=>"form-horizontal form-label-left","novalidate"=>'true')) }}
-
@StephenMudere 请找到更新后的问题,已添加
form代码 -
@bipinpatel 我对排除路线不感兴趣
-
@silverFoxA 我在这里也有同样的问题...我使用的是 MacBook OSX 10.12.6,该问题仅在本地出现在 dev 上,推送到 heroku 后它工作正常...请告诉我如果您找到了解决方案..