gpt4 book ai didi

php - Laravel 在 Controller 中手动检查 CSRF

转载 作者:可可西里 更新时间:2023-11-01 13:31:27 25 4
gpt4 key购买 nike

我正在使用 Laravel 5.5。当我从 laravel blade 发送 POST 请求时。然后一切就OK了:

$.post({
url: 'http://localhost/check',
data: {
_token: CSRF_TOKEN, // I have CSRF token variable above.
test: "it works"
}
})

但我想用 socket.io > node.js > laravel 发送那个请求:

socket.emit('checkPost', { token: CSRF_TOKEN });

索引.js

socket.on('checkPost', function (csrf) {
request.post({
url: 'http://localhost/check',
form: {
_token: csrf.token,
test: "it works"
}
});
});

使用 ajax 一切正常。在这里我得到了 token 不匹配。为什么?

当我在 VerifyCsrfToken 中为/check route 禁用 token 验证时, Node 请求也会工作。

我该如何解决?也许有 Controller csrf 检查方法?然后我会检查 Controller 中的 post csrf。提前致谢,抱歉我的英语不好。

最佳答案

您错过了标记变量名称前的下划线。 Laravel 的 token 输入名称是“_token”而不是“token”。你必须这样写:

socket.emit('checkPost', { _token: CSRF_TOKEN });

这只是一个错字。

希望这会有所帮助。

关于php - Laravel 在 Controller 中手动检查 CSRF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46628570/

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