有一个基于Laravel 5.2.5和angularjs 1.7.4的现有项目 . 没有由laravel生成的html页面,只有API . 该项目应该使用CSRF保护 .
Angular docs说,那是$http service will automatically set the X-XSRF-TOKEN header .
执行XHR请求时,$ http服务从cookie(默认情况下为XSRF-TOKEN)读取令牌并将其设置为HTTP头(默认为X-XSRF-TOKEN) .
我发现Laravel 5.2 docs say that it will check for the X-XSRF-TOKEN header as well .
Laravel还将CSRF令牌存储在XSRF-TOKEN cookie中 . 您可以使用cookie值来设置X-XSRF-TOKEN请求标头 . 一些JavaScript框架,如Angular,会自动为您执行此操作 . 您不太可能需要手动使用此值 .
但我得到的是来自Laravel的 TokenMismatchException
错误 .
我是否必须使用一些额外的设置来实现CSRF保护?
1 回答
尝试将_token字段添加到$ http服务的正文中 . 例: