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 5.6 护照 API 身份验证在获取请求中不起作用
Laravel 5.6 - Passport JWT httponly cookie SPA 身份验证用于自用 API?