如何优雅的调试微信、微博等基于 OAuth2.0 协议的第三方登录

如何优雅的调试微信、微博等基于 OAuth2.0 协议的第三方登录

Chris Yue 3 comments
Posts

今天一哥们儿问我,新项目的测试服务器什么时候搭配好,我说怎么了兄弟?他说,OAuth2 做测试得用一台能上外网的服务器啊……

这话听着耳熟,之前也有另外一个哥们儿,做一个微信登录花了两天多,问他时间都去哪了,他说,测试麻烦,写完代码,得先部署到测试机,才能测试……

原来还有这么多哥们儿,不知道测试 OAuth2.0 登录,根本不需要一台外网的测试机么?老司机实在看不下去了。

测试桌面端 OAuth 登录

这个再简单不过了好吗,假如你在微博的 OAuth2.0 服务里设置的授权回调是 chrisyue.com,你只需要打开 hosts 文件,将 chrisyue.com 指向 127.0.0.1 就好了,然后用 chrisyue.com 来访问你的项目。

测试移动端 OAuth 登录

比上面也就稍微复杂一点点,假如你在微信的 OAuth2.0 服务设置的回调是 chrisyue.com,因为要求必须用微信才能登录,但手机又不方便改 hosts 文件,不过没关系,不用 root 你的手机。同桌面端的步骤,没错,依然是改电脑上的 hosts 文件,只不过,chrisyue.com 不再指向 127.0.0.1。电脑和手机放在同一局域网下,假设电脑在此局域网的 IP 是 192.168.0.1,就在 hosts 里将 chrisyue.com 指向它,然后打开 charlse 或者 mitmproxy 等代理工具。

再拿出你的手机,设置使用代理,IP 就是电脑的 IP,端口号看你在代理工具上怎么设置的了…… 这样在微信上访问 chrisyue.com 的时候,其实访问的是电脑。

这样就行了?这假的回调网站也行?

还真没有哪里不对,客户端访问本地假的 chrisyue.com,发现用户没登录,跳转到微博或者微信做登录操作,用户登录成功之后,微博或者微信带着 code (或者 access_token 如果你用 implicit grant flow 的话)重定向回 chrisyue.com,放心,不会跳到真的 chrisyue.com,还是那个假的,然后假的 chrisyue.com 拿到 code 之后,后面怎么样我就不说了。

如何优雅的调试微信、微博等基于 OAuth2.0 协议的第三方登录 by Chris Yue is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

微信赞赏码

文章不错,我要帮站长分担建站费!
天使投赏人

3 Comments

香饽饽

四月 9, 2019 在 3:12 下午

> chrisyue.com 指向 127.0.0.1 就好了

指向可以再带上端口吗,因为本地服务是起在8080端口上的,自己折腾了下,结果无效,所以来问下

    Chris Yue

    四月 12, 2019 在 8:17 上午

    不能…… hosts 文件只设定域名与 IP 的关系,跟端口无关。设置 x ???.???.???.??? 之后,无论访问的是 http://x 还是 http://x:8080 ,实际上都访问的是 ???.???.???.??? 这台机器

    你也没描述是怎么不管用,所以无法帮你,但肯定跟这个设置没关系

     

剑心

一月 9, 2019 在 5:54 下午

卧槽。。微信难道不是跳转到真的域名吗?难道会跳转本机IP的域名??

发表评论

nine × = nine