在“弹出”模式下交换访问令牌时出现“redirect_uri_mismatch”

问题描述 投票:0回答:2

我们根据此文档构建 Web 应用程序并与 Google OAuth2 集成 Google Identity Services JavaScript SDK

我们想使用“popup”模式,但是当尝试用验证码交换access_token时,

/token
返回错误,如“

{“error”:“redirect_uri_mismatch”,“error_description”:“错误请求”}”

我们在调用

redirect_url
时传递了
/token
参数,与凭证页面配置的完全一样。

更奇怪的是,当我们切换到“重定向”模式时,一切正常。一样

client_id
,一样
client_secret
,一样
grant_type
,一样
redirect_uri

我不明白,就像在

redirect
popup
模式下生成的代码被不同地对待。

有什么帮助吗?非常感谢!

javascript google-oauth
2个回答
7
投票

将OAuth2客户端中的redirectUri设置为“postmessage”,表示您已经发送了消息。

这是一个未记录的功能。

用一次性代码交换刷新令牌时出现 Google OAuth redirect_uri_mismatch

您应该删除 Google 控制台中现有的重定向 URL,然后重新下载凭证 JSON。


2
投票

根据您引用的文档,Google 不希望弹出模式下出现 refirect_url。 Google 不会发送重定向。相反,它会将授权代码直接返回到您的回调,并且回调必须将其发送到您的服务器。

© www.soinside.com 2019 - 2024. All rights reserved.