Google-oauth回调适用于桌面浏览器,但不适用于移动浏览器

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

我已经设置了google_oauth_client并使用passport.js实现了google_authentication,并将我的应用部署到了heroku。身份验证适用于桌面浏览器,但我从移动设备上的浏览器收到redirect_uri_mismatch错误。

我已经研究过这个问题,但互联网上并没有太多。我尝试从几台台式电脑和所有作品进行身份验证。但是,相同的操作会从任何移动设备发出错误。

我不确定我是否需要在这里显示代码,但这里是我的手机和Oauth_client的错误快照。这里还有我在heroku部署的应用程序的链接

mobile error

google_oauth_client_setup

mobile passport.js google-oauth url-redirection passport-google-oauth
1个回答
0
投票

对于那些可能遇到这个问题的人。修复实际上非常简单。移动浏览器无法理解我在下面的GoogleStrategy设置:

    clientID: keys.googleClientID,
    clientSecret: keys.googleClientSecret,
    callbackURL: '/auth/google/callback',
    proxy: true

你必须做这样的事情。确保配置文件具有heroku域的绝对路径,而不是像在keys.redirectURI中那样调用它

    clientID: keys.googleClientID,
    clientSecret: keys.googleClientSecret,
    callbackURL: keys.redirectURI + '/auth/google/callback',

我认为问题是'proxy.true'。也许谷歌没有正确代理移动浏览器。正如您将从上面的屏幕截图中看到的那样,它正在尝试重定向到http而不是https。

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