Laravel在控制器

时间:2017-10-08 07:32:07

标签: php node.js laravel socket.io

我正在使用Laravel 5.5。当我从laravel刀片发送POST请求时。一切都很好:

$.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 });

index.js

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

用ajax一切都好。在这里,我得到了令牌不匹配。为什么呢?

当我在VerifyCsrfToken中为/ check路由禁用令牌验证时,节点请求也会起作用。

我该如何解决?也许有控制器csrf检查方法?然后我会检查控制器中的帖子csrf ..提前感谢,抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

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

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

这只是一个错字。

希望这会有所帮助。