gpt4 book ai didi

angularjs - 正确设置 Laravel 5 CSRF token 的 header

转载 作者:行者123 更新时间:2023-12-04 23:20:53 24 4
gpt4 key购买 nike

好吧,已经搜索了几个小时,只是找不到解决方案的开始。

我正在使用带有 Laravel 后端的 angularJS 前端。 Restangular 是我的通讯服务。

我的 POST 很好,因为我可以在数据中包含 _token 并且它会起作用。

但是对于 Restangular 调用销毁函数,它看起来像......

Restangular.all('auth/logout').remove(); //maps to AuthController@Destroy

一切都很好,但是你会得到一个 TOKENMISMATCH 异常,这是一个很好的安全措施

由于我找不到将 _token 包含到删除中的方法,因为它本质上是无正文的,所以我决定将 token 放在标题中。
RestangularProvider.setDefaultHeaders({'X-XSRF-TOKEN': CSRF_TOKEN}); //CSRF_TOKEN gathered elsewhere

在 Chrome dev tolos 之外,我可以看到标题设置为
X-XSRF-TOKEN:ClkQIRLpFQgMg8ZT6X5CF6doCplRfdJzW8msx2JI

X-XSRF-TOKEN 正是 VerifyCrsfToken.php 正在寻找的东西。然而,它吐出一个解密错误。任何其他 token 名称,例如 XSRF-TOKEN、_TOKEN、CSRF_TOKEN 都会吐出 token 不匹配。

由于最后一个事实,似乎 header 已正确声明,但我无法理解的事情导致 Laravel 无法解密。我已经密切关注解密功能,但不明白为什么它会失败......

感谢您的帮助。

最佳答案

这是由于 csrf token 的加密。 Laravel 期望 token 被加密。

它尝试解密您提供的普通 token ,但失败了。

在您可以使用 header 中的 token 之前,您必须对其进行加密。

$encrypter = app('Illuminate\Encryption\Encrypter');
$encrypted_token = $encrypter->encrypt(csrf_token());

这对我有用。

亚历克斯

关于angularjs - 正确设置 Laravel 5 CSRF token 的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27304060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com