Laravel Sanctum个人令牌授权REST API失败问题咨询
Laravel Sanctum令牌使用问题解答
- 是,你需要使用接口返回的完整令牌内容(比如示例中的
2|hMASkhdQOzl7aOEL7G0At5A3yLZ0yWSLYNRy2kM7)作为Bearer令牌的值。
如果已经正确使用完整令牌但仍被重定向到登录页,排查以下常见问题:
- 确保受保护的API路由定义在
routes/api.php中,而非routes/web.php。web.php中的路由默认启用session认证,未通过时会触发重定向;api.php使用无状态中间件组,符合Sanctum令牌认证的场景。 - 检查
.env文件的SANCTUM_STATEFUL_DOMAINS配置,将你的请求来源域名(如本地开发的localhost:8000)添加到该配置项中,多个域名用逗号分隔。 - 确认请求头格式正确:
Authorization: Bearer 令牌内容,注意Bearer与令牌之间必须有一个空格,不能省略或多打空格。 - 避免请求中携带多余的Cookie(比如浏览器自动发送的session cookie),这会导致Sanctum优先尝试session认证,失败后触发重定向。建议用Postman、curl等工具测试,确保请求仅携带Authorization头。
- 验证令牌有效性:可以在控制器中添加代码
dd(auth()->user()),查看是否能正常获取到用户;或者使用PersonalAccessToken::findToken('你的令牌内容')检查令牌是否存在且未过期。
内容的提问来源于stack exchange,提问作者Edmunds Priede
相关产品推荐
相关产品推荐

