我已经设置了google_oauth_client并使用passport.js实现了google_authentication,并将我的应用部署到了heroku。验证正在通过桌面浏览器进行,但是我从移动设备上的浏览器中收到redirect_uri_mismatch错误。
我已经研究了这个问题,但是互联网上没有很多。我尝试从一些台式计算机和所有作品进行身份验证。但是,相同的操作会导致任何移动设备产生错误。
我不确定我是否需要在此处显示代码,但这是来自我的手机和Oauth_client的错误的快照。这也是指向我的应用程序的链接 heroku
答案 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。