前面介绍了授权登录,虽然各种场景下代码差不多。但我觉得还是有必要继续补充一下:
在订阅号下做授权登录
微信没有开放订阅号下的授权登录,所以直接搞的话,没戏。
不过网友发现可以这么搞:在开放平台下注册,按开放平台的方式和配置来开发,但发现此时授权登录变成了扫二维码的形式来登录,这显然不符合需求。
要干掉扫二维码这个问题,只需要改一个地方:
将:https://open.weixin.qq.com/connect/qrconnect
改为:https://open.weixin.qq.com/connect/oauth2/authorize
此时就不是二维码了,不过由于 scope 只能是 snsapi_login,所以无法做到像 snsapi_base 那样的静默授权,如果之前刚刚登录,又调用,就会提示“近期你已经授权过,自动登录中”(大概是这么说的),隔一小段时间再自动跳转。
在服务号(指认证了的)下做授权登录
获得的用户标识
OpenID。同一个用户在访问不同的公众号、APP 时,其 OpenID 不相同。
调用地址
https://open.weixin.qq.com/connect/oauth2/authorize
scope 值
如果 scope 是 snsapi_base,是用来获取进入页面的用户的 openid 的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
如果 scope 是 snsapi_userinfo,是用来获取用户的基本信息的。但这种授权需要用户手动点击同意按钮,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
在开放平台下做授权登录(这里只谈网页中的授权,不谈 APP 中的)
获得的用户标识
UnionID。同一个用户在访问不同的公众号、APP 时,其 UnionID 是相同的。
调用地址
https://open.weixin.qq.com/connect/qrconnect
scope 值
只能是 snsapi_login。登录时会出现一个二维码(即使是用微信打开)。