我正在尝试为我的应用程序实现Google登录(https://developers.google.com/identity/sign-in/web/server-side-flow(。我已经设法成功获得了授权代码,但是当我尝试将其交换为令牌时,我得到了以下响应。
错误响应:
{
"error": "redirect_uri_mismatch",
"error_description": "Bad Request"
}
我已经尝试将许多重定向URL添加到Google控制台,但此问题仍然存在。请参阅下面的重定向网址。
http://localhost:49188/oauthcallback.aspx
https://localhost:49188/oauthcallback.aspx
https://localhost:49188/oauthcallback.aspx
http://localhost/oauthcallback.aspx
https://localhost/oauthcallback.aspx
http://localhost/oauthcallback.aspx
https://localhost/oauthcallback.aspx
我尝试了使用不同令牌终结点的多个请求,但它无法解决此问题。
第一个端点:
POST URI: www.googleapis.com/oauth2/v4/token
Content-Type: application/x-www-form-urlencoded
code={code}&
client_id={xxx}.apps.googleusercontent.com&
client_secret={client_secret}&
redirect_uri=https://localhost:49188/oauthcallback.aspx&
grant_type=authorization_code
第二个终点:
POST URI: https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded
code={code}&
client_id={xxx}.apps.googleusercontent.com&
client_secret={client_secret}&
redirect_uri=https://localhost:49188/oauthcallback.aspx&
grant_type=authorization_code
我希望得到正确的令牌响应,但请参考下面的 JSON,因为它是我得到的响应。
预期响应:
{
"access_token":"1/fFAGRNJru1FTz70BzhT3Zg",
"expires_in":3920,
"token_type":"Bearer",
"refresh_token":"1/xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI"
}
错误响应
{
"error": "redirect_uri_mismatch",
"error_description": "Bad Request"
}
@user2705223 你强调了一个很好的观点。因此,如果您使用 ux_mode="popup" 或默认值,似乎 JS SDK 将域名托管服务商添加为默认重定向 URL,而不是初始化时指定的 URL,这很奇怪。