Skip to content

微信订阅号里实现oauth授权登录,并获取用户信息 [2015-11-09] #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
mosaic101 opened this issue Jan 24, 2019 · 0 comments

Comments

@mosaic101
Copy link
Owner

前端时间折腾过的蛋疼问题,好不容易解决了,现在把这个分享出去;众所周知,微信公众号分订阅号、服务号、企业号;每个号的用途不一样,接口开放程度也不一样。微信还有个扯淡的开放平台,号称统一管理众多公众号的。反正都是交钱的功能多,两个平台把我弄得傻傻分不清楚。

切入正题,上个公司有个微信订阅号,内嵌了一个微网站,并且要实现授权登录。这个授权登录的接口只有认证的服务号才能调用,订阅号要实现这个功能只能另辟蹊径;

  • 这个是微信公众号的api地址
http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
  • 这个是开放平台的api地址
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN

第一次尝试:
​ 我看了开放平台的api里的网页授权登录,里面有个网页授权登录。但是是扫码登录,根本不适用于移动端,折腾了半天,失败。

第二次尝试:
​ 方倍工作室有一篇文章说可以借助服务号的oauth interface,在订阅号里使用。api里也说是可以在未关注该公众号的情况下,获取用户基本信息,如下图:

img
​ 实际上,然并卵。折腾了半天回调地址都没有code值,然后放到该服务号里或者关注该服务号就能获取到code了,这个该死的api 忽悠人。

第三次尝试:
​ 这种问题懂得人实在太少,百度又是个垃圾搜索,想找个预期的回答都很难。最后好不容易找到个跟我经历很像的哥们,成功解决该问题。

img
​ 这个逻辑就又回到第一次尝试了,然后把url的开头换成微信公众号里的开头,就能变向的实现微信订阅号里的授权登录。

前提需要在开放平台交300元认证费开通相关功能,并创建网站应用,等待通过

img

如果直接使用开放平台的微信登录功能,只能出现基于二维码的扫一扫页面,并且只适用于pc端的微信登录。

开放平台官方提供的认证地址是:

https://open.weixin.qq.com/connect/qrconnect?……

他会生成一个二维码需要微信扫描登陆后获取信息,这和微信内自登陆相差太远

经过不断的摸索,发现一个小捷径:即更换上面的认证地址为:

https://open.weixin.qq.com/connect/oauth2/authorize?……

目前这个方法微信没写入开放平台的官方文档,但是却可以实现订阅号的微信内自登陆,不过和服务号的OAuth不同的是,这种方式是登陆操作(snsapi_login必须只能设置成这个),不是直接的获取操作(snsapi_base,snsapi_userinfo)

参考微信订阅号:e城e乡

long long ago 实现的功能,目前仍然可行。微信开发我只做过这个,其他的不一定会,^_^

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant