好吧,一直在搜索这个小时,并且找不到解决方案的开始。正确设置Laravel 5 CSRF令牌的标头
我正在使用带有laravel后端的angularJS前端。 Restangular是我的通信服务。
我的POST很好,因为我可以在数据中包含_token,它会起作用。
但Restangular调用一个函数破坏它看起来像......
Restangular.all('auth/logout').remove(); //maps to [email protected]
一切都很好,但你会得到一个TOKENMISMATCH异常,这是一个很好的安全messure
因为我可以找不到将_token包含在删除中的方法,因为它本质上没有实质性,所以我决定将标记放在标题中。
RestangularProvider.setDefaultHeaders({'X-XSRF-TOKEN': CSRF_TOKEN}); //CSRF_TOKEN gathered elsewhere
出了Chrome浏览器开发tolos的,我可以看到标题设置为
X-XSRF-TOKEN:ClkQIRLpFQgMg8ZT6X5CF6doCplRfdJzW8msx2JI
X-XSRF-TOKEN正是什么VerifyCrsfToken.php所期待的。然而,它吐出了一个解密错误。任何其他令牌名称(如XSRF-TOKEN,_TOKEN,CSRF_TOKEN)都会吐出令牌不匹配。
由于这个最后一个事实,它看起来像标题被正确地声明,但是超出我理解的东西正在导致Laravel失败解密。我已经在密码解密功能,但不明白为什么它会失败...
谢谢你的帮助。
你试过' 'X-CSRF-TOKEN':CSRF_TOKEN'? – user2094178 2015-02-25 03:19:55