"redirect_uri_mismatch" 在 "popup" 模式下交换访问令牌时

"redirect_uri_mismatch" when exchanging access token under "popup" mode

我们根据此文档 Google Identity Services JavaScript SDK

构建我们的 Web 应用程序并与 Google OAuth2 集成

我们想使用“弹出”模式,但是当尝试用验证码交换access_token时,/token return错误如“

{"error": "redirect_uri_mismatch","error_description": "Bad Request"}"

我们在调用/token时传递了redirect_url参数,和凭证页面配置的完全一样

更奇怪的是,当我们切换到“重定向”模式时,一切正常。相同 client_id、相同 client_secret、相同 grant_type、相同 redirect_uri.

不明白,好像在redirectpopup模式下生成的代码被区别对待。

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

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

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

这是一个未记录的功能。