Endpoint
Overview
用户授权后,该 endpoint 会被健康 provider 调用。它通过将授权码交换为 access tokens 来完成 OAuth flow,并保存凭据。How It Works
当用户在 provider 网站完成授权后,provider 会携带授权码重定向回此 callback URL。随后 Mirobody Health 会:- 校验 OAuth state 参数
- 将授权码交换为 access tokens
- 将加密后的凭据保存到数据库
- 触发首次数据同步
- (如果提供了
return_url)重定向用户
OAuth 2.0 Callback Parameters
provider 返回的授权码
用于 CSRF 防护的 state 参数
OAuth 1.0 Callback Parameters
OAuth request token
OAuth verifier code
Callback Flow
Response
处理完成后 callback 通常会重定向用户;如果被直接调用或发生错误,也可能返回 JSON:Troubleshooting
Invalid State Error
Invalid State Error
Cause: State parameter doesn’t match or has expiredSolutions:
- 确保用户在 15 分钟内完成授权
- 不要修改授权 URL
- 检查 Redis 是否运行且可访问
Token Exchange Failed
Token Exchange Failed
Cause: Provider rejected the code exchangeSolutions:
- 确认 OAuth 凭据是否正确
- 检查 redirect URI 是否与 provider 配置一致
- 确认授权码未过期(通常 10 分钟)
Redirect Loop
Redirect Loop
Cause: Callback URL misconfiguredSolutions:
- 检查 provider 开发者门户中的 callback URL
- 检查 redirect URL 配置是否有拼写错误
- 确保 URL 协议一致(http vs https)
该 endpoint 需要在各 provider 的开发者门户中配置为 OAuth callback URL。URL 格式为:生产环境请替换为你的 production domain。