You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Passport:无用户场景下如何通过Client ID和Secret获取Bearer Token

无用户参与下用client_id和client_secret获取Bearer Token的解决方法

你现在的问题核心是选错了授权模式——用了authorization_code(授权码模式),这个模式必须依赖用户参与授权流程,完全不符合你“无用户参与”的需求。你应该使用客户端凭证模式,对应的grant_type参数值为client_credentials。

正确的请求配置

JSON格式请求体示例

{
  "grant_type": "client_credentials",
  "client_id": "blabla",
  "client_secret": "blabla"
}

关键注意事项

  • 先确认OAuth服务端已为该客户端开启client_credentials授权类型:检查oauth_clients表中的对应记录,确保allowed_grant_types字段包含client_credentials(或服务端有类似的授权类型配置项)。
  • 请求必须使用POST方法,同时需将请求头的Content-Type设置为application/json(使用JSON请求体时)或application/x-www-form-urlencoded(使用表单格式提交参数时)。
  • 部分OAuth服务端要求client_id和client_secret通过Basic Auth方式传递:将client_id:client_secret做Base64编码后,放在Authorization请求头中,格式为Basic <Base64编码字符串>,此时请求体仅需传递grant_type=client_credentials。

报错排查方向

如果仍然返回“Client authentication failed”,可以从以下几点排查:

  • 核对client_id和client_secret的拼写、大小写,确认无多余空格或输入错误。
  • 检查oauth_clients表中的客户端是否处于启用状态(比如active字段是否为true)。
  • 验证服务端是否对该客户端设置了IP或访问来源限制,确认客户端的访问来源在允许范围内。

内容的提问来源于stack exchange,提问作者user2396307

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 08:22:11