Laravel 6 Passport CSRF 令牌不匹配

Posted

技术标签:

【中文标题】Laravel 6 Passport CSRF 令牌不匹配【英文标题】:Laravel 6 Passport CSRF token mismatch 【发布时间】:2020-05-02 06:27:32 【问题描述】:

我刚刚创建了一个新的 Laravel 6 项目,安装了 Passport 功能 (Laravel Passport) 并想尝试一下。现在,在 Postman 中,我尝试访问默认路由 POST /oauth/clients,按预期填写名称和重定向参数。

此时我会收到 “CSRF 令牌不匹配” 错误,我在这里做错了什么?我知道这是非常有限的信息,如果需要更多信息,请询问。

使用 'php artisan serve' 运行 Laravel 网站。

编辑:邮递员已接受:Json/Application。

【问题讨论】:

如果您添加了中间件但不需要 \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,,请将其删除。 @DelenaMalan 谢谢你,但我没有在任何地方添加它。 你想通过这条路线达到什么目的? 【参考方案1】:

以下是一些可能的解决方案:

1) 将Content-Type: application/json 添加到您的邮递员请求中。


2) 尝试执行php artisan passport:install命令重新安装客户端证书。


3) 如here 所述,可以为配置的 url 禁用 CSRF 检查。

因此尝试将以下代码添加到VerifyCsrfToken 类中:

protected $except = [
    'oauth/clients',
];

我希望其中一些解决方案能解决您的问题。

【讨论】:

我现在打算禁用 CSRF 检查,但我需要看看它有多安全。 您是否尝试将Conten-Type 标头添加到您的邮递员请求中?我经常使用护照,从来没有遇到过这样的问题。 我的意思是 Content-Type 不是 Conten-Type.. 对不起。 安装passport后显示的client secret和id是什么意思 您需要那些在服务器上进行身份验证。或者你到底是什么意思?

以上是关于Laravel 6 Passport CSRF 令牌不匹配的主要内容,如果未能解决你的问题,请参考以下文章

问题理解 Laravel 6.0 Passport with Password Grant Tokens 流程

Laravel Passport 无效范围提供了异常

Laravel 5.6 护照 API 身份验证在获取请求中不起作用

Laravel 5.6 - Passport JWT httponly cookie SPA 身份验证用于自用 API?

Laravel Passport 无法验证我新生成的令牌

如何使用 Laravel Passport (5.3) 记录身份验证尝试