use*_*118 3 laravel postman laravel-sanctum laravel-8
我目前正在尝试使用 Laravel 8.19.0 和 Postman 7.36.1 测试 SPA,但我不断从受“auth:sanctum”保护的路由收到“未经身份验证”的响应,即使我已正确登录。
据我所知,我完全按照https://laravel.com/docs/8.x/sanctum上的文档进行操作 ,以便将 Sanctum 设置为用于 SPA,因此我做了以下操作:
EnsureFrontendRequestsAreStateful::classHttp Kernal 的“ ”。然后,我使用https://blog.codecourse.com/laravel-sanctum-airlock-with-postman/上的指南设置了 Postman,因此我编写了一个脚本来从“ /sanctum/csrf” 获取 CSRF 令牌-cookie ”然后使用所述令牌作为请求标头中“X-XSRF-TOKEN”的值,我可以成功登录。但是,当我随后尝试访问由“auth:sanctum”守卫保护的路由时,即使在请求标头中设置了引用者和“X-XSRF-TOKEN”,我也无法访问该路由。
调试后,我可以看到第 63 行的\vendor\laravel\framework\src\Illuminate\Auth\Middleware\Authenticate.php中的方法$this->auth->guard($guard)->check()返回 false ,因为Illuminate\Auth\RequestGuard为 nullauthenticate($request, array $guards)$guard = "sanctum"$this->user()。
任何有关要检查的事情的帮助甚至想法都将不胜感激,因为我不确定从这里做什么,缺少花一天时间深入研究请求保护对象及其实例化!
谢谢。
小智 9
很多人在使用带有 Sanctum SPA 身份验证的 Postman 时遇到的问题是,您只需向请求添加一个额外的标头,这可以是“Referrer”或“Origin”,并且该值必须与在 Sanctum 中设置的域相匹配。 php 配置文件。例如 localhost 或 mysite.test 等。
fromFrontEnd()方法中的vendor/laravel/sanctum/src/Http/Middleware/EnsureFrontendRequestsAreStatefull.php是您可以看到此要求的地方。Laravel V8.x,我也相信 Laravel V7.x
| 归档时间: |
|
| 查看次数: |
6019 次 |
| 最近记录: |