使用Microsoft OAuth AccessToken调用Firebase Rest API遇400错误求解决
解决Microsoft OAuth凭证调用Firebase signInWithIdp接口400错误的方案
核心修正点
- 替换凭证类型:把
postBody里的凭证换成Microsoft返回的id_token,而非access_token。Google Identity Platform(GIP)验证第三方身份时,需要的是身份提供商签发的ID Token(包含用户身份信息的JWT),不是用于调用Microsoft API的访问令牌。 - 修正providerId值:GIP识别Microsoft身份提供商的正确ID是
windowslive.com,不是你用的microsoft.com。 - 移除冗余参数:请求体中的
tenant参数完全不需要,直接删除即可。
正确请求体示例
{ "postBody": "id_token=[Microsoft返回的id_token]&providerId=windowslive.com", "requestUri": "http://localhost", "returnIdpCredential": true, "returnSecureToken": true }
额外验证步骤
- 先用JWT解码工具解析你的Microsoft id_token,确认它包含
sub(用户唯一标识)、email等标准身份字段,确保凭证本身有效。 - 检查Firebase/GIP控制台,确认已经启用Microsoft登录提供商,且配置的客户端ID、密钥和你请求Microsoft令牌时使用的完全一致。
内容的提问来源于stack exchange,提问作者Sprigg
相关产品推荐
相关产品推荐

