接入与联调
回调与授权码流程
回调地址总被判定未登记、本地开发怎么测回调、为什么不支持隐式流程与密码模式。
回调地址一直提示未登记
检查三件事:
- 是否带非根路径:
https://example.com不行,https://example.com/cb才行; - 协议是否为
https:仅回环地址可用http; - 是否带了查询串或
#片段:都不允许,必须逐字匹配登记值。
授权请求里的 redirect_uri 必须与登记值逐字一致,多一个斜杠都会被拒。详见回调地址规则。
本地开发怎么测回调
用回环地址:http://127.0.0.1:端口/回调路径 或 http://localhost:端口/回调路径。只有回环地址允许 http,其他一律 https。把这条回环地址作为独立客户端登记,不要和线上地址混在同一个客户端里。
为什么不支持隐式流程或密码模式
第三方应用只有一条路:授权码 + PKCE(S256)。服务端会直接拒绝其他流程。
- 隐式流程把令牌放在 URL 片段里,容易泄露到日志与浏览器历史;
- 密码模式要求应用接触用户密码,违反「应用不该看到凭据」的前提。
授权码能重复使用吗
不能。授权码一次性,换过令牌即作废。重复使用会得到 invalid_grant,见令牌交换与刷新。