最近由于需求原因,需要在微信订阅号内做oauth授权登录,但是公众平台的授权登录接口只能是认证的服务号才能调用,此时马上就想到了两种解决方案:


一:通过创建一个新的服务号并认证,使用该服务号oauth授权登录接口给订阅号做授权。(未测试,只查阅得知结果)


QQ图片20170609142810.png


二:通过微信开放平台给订阅号做授权。


经谷歌上查阅得知,方案一并不能实现,因为被授权者需要同时关注服务号,所以并不能完美的解决我们的问题。


那么只能通过走微信开放平台去做oauth授权登录,查阅了微信开放平台的相关文档后,并没有发现相关的资料。后来谷歌后发现可以


**使用公众平台的授权登录接口配合开放平台的scope(snsapi_login)去实现,这里需要注意的是授权的scope必须为snsapi_login,而不能是常规公众平台授权的snsapi_base或者snsapi_userinfo,**


例如
公众平台的授权接口为:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect


开放平台的授权接口为:https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect


在订阅号内所使用开放平台做授权只需要把公众平台授权接口中的appid改为开放平台的appid,scope改为

snsapi_login

https://open.weixin.qq.com/connect/oauth2/authorize?appid=开放平台的appid&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect


QQ图片20170609153434.png

这样即可完成在订阅号内使用开放平台做授权登录