Google-oauth回调只能在台式机浏览器上运行,而不能在移动浏览器上运行

时间:2019-04-05 23:44:06

标签: mobile passport.js google-oauth url-redirection passport-google-oauth

我已经设置了google_oauth_client并使用passport.js实现了google_authentication,并将我的应用部署到了heroku。验证正在通过桌面浏览器进行,但是我从移动设备上的浏览器中收到redirect_uri_mismatch错误。

我已经研究了这个问题,但是互联网上没有很多。我尝试从一些台式计算机和所有作品进行身份验证。但是,相同的操作会导致任何移动设备产生错误。

我不确定我是否需要在此处显示代码,但这是来自我的手机和Oauth_client的错误的快照。这也是指向我的应用程序的链接 heroku

mobile error

google_oauth_client_setup

1 个答案:

答案 0 :(得分: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'。也许Google没有正确地代理到移动浏览器。从上面的屏幕快照中可以看到,它正在尝试重定向到http而不是https。