我正试图在我的laravel web应用程序中添加csrf作为元标签-
<meta name="csrf-token" content="{{ csrf_token() }}">
但当我浏览它时,值是空的-
<meta name="csrf-token" content="">
我也尝试过在登录表单中添加-作为{!! csrf_filed() !!}
或
<input type="hidden" name="_token" value="{{ csrf_token() }}">
但在这两种情况下,值都为null。我在前端使用Angularjs,这与此有关吗?
将路由放入路由组"中间件":
Route::group(['middleware' => ['web']], function () {
// your routes here
});
运行这个:
php artisan key:generate
如果我们在404
页面中,我们也会在csrf_token
中得到空值。这种情况通常发生在您尝试执行注销操作时,表单在header.blade.php
中,并且我们正在访问404
页面。请尝试返回索引页,查看csrf_token
是否仍然为空。
对我来说,我试图通过手动刷新会话来处理页面过期。当我从控制器中刷新会话并检查html表单时,我得到了空的_token值,当会话刷新代码从控制器中删除时,它运行良好。此外,在文档中,它指出将为活动用户生成csrf,当会话过期或刷新时,将生成空值。对于一些极客来说,也可以不使用上面答案中提到的中间件网络。