现金酬谢!!!紧急求助 用passport.js 实现第三方登录时遇到:InternalOAuthError: Failed to obtain access token
发布于 6 年前 作者 ZiNai 3991 次浏览 来自 问答

才开始学习使用nodejs,接到一个做第三方的需求

参照:https://github.com/iamshaunjp/oauth-playlist/tree/lesson-10 进行的实现,相应的clientid,clientsecret已经换成自己的了,但是一跑起来就报这个错 国内用的shadowsocks翻的墙 1.google了很久,都没得到解决,有几个方案认为是http代理的问题,提的pac这类的,这个不懂,希望有人能帮助解答一下。 2.目前网站是http的协议,后面测试facebook要强制https,这个也没解决

4 回复

passport.js 在 google oauth时,会使用nodejs发送一个http请求给google的服务器 (ps: shadowsocks应该没能代理这个请求),这个请求国内会被墙,所以会导致每次都登录失败,并不是自己代码的问题。

如果确定自己写得没有问题,可以租一台国外的主机做次实验就知道了。

在国内使用google登录是很难行得通的。

如果非要使用google登录,记得好像域名必须要走https,所以需要事先准备个证书,做实验的话,可以通过 https://certbot.eff.org/lets-encrypt/ubuntuxenial-nginx 快速弄一个

@tsq 好的,我试试

Hi,ZiNai,这个问题你后来怎么解决的~

@qiurenbo 后来这个需求不做了😭 不过情况基本就是一楼说的那样。。。 国内网络的问题,还有这些平台需要https,调试的话最好用ngrok做个内网穿透,但是网络确实是根本原因,尤其开发Facebook相关的,动不动就给你把ID锁了。。。

回到顶部