做微信登录前必须先了解的事情
1. 微信公众平台与微信开放平台
微信登录分为微信开放平台和微信公众平台
微信公众平台:指使用微信内置浏览器登录网站,没有二维码显示。
微信开放平台:为PC或者移动网页登录网站,显示二维码,扫码二维码后登录。
2. 网页授权的两种scope的区别
- 以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
- 以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
(PS:一般的话我们会选择获取用户信息,所以一般采用snsapi_userinfo的方式。)
3. 公众平台里的服务号与订阅号的区别
- 订阅号每天可以发1条群发消息。
- 服务号一个月内仅可以发送4条群发消息。
- 订阅号的消息是折叠在聊天窗口的订阅号里面的
- 服务号的消息是直接显示在聊天窗口里的。
- 订阅号不能深度开发,提供各类今日资讯,以资讯为主。
- 服务号可以深度定制开发,内容提供一些功能服务,以服务为主。
(PS:微信登录的话必须是认证过的服务号才可以)
4. 网页授权access_token和普通access_token的区别
- 微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息;
- 其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。
(PS:所以access_token是不通用的。)
5. 微信公众号的配置
开发——》接口权限——》网页服务——》网页授权获取用户基本信息
然后点击修改,修改授权回调域名
(PS:如果显示的是“未获得”,没有修改项的话,需要开通微信认证,微信认证为300元,设置——》微信认证——》开通)
6. openid和unionid区别
openid:用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的openId
unionid:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的
(PS:即如果你只是使用一种登录方式,或者微信浏览器登录,或扫码登录,使用openid即可。但是你即要使用微信在微信浏览器里登录,又要在扫码登录的话,那就需要使用unionid为确定用户的唯一。因为公众平台的openid和开放平台的openid是不一样的。)
7. 微信开放平台配置
管理中心——》公众账号/小程序——》绑定公众账号/小程序
image.png(PS:绑定公众平台账号后,会出现 unionid,)
8. 微信开放平台授权回调域名配置
绑定以后,点击查看,在最下面会有,开发信息——》授权回调域
image.png9. AppID 和 AppSecret
微信公众平台与微信开放平台的接口文档是不一样的,所以要找到每个平台的对应的文档,所以两个平台的AppID 和 AppSecret也是不一样的。
8. 微信接口内回调链接地址(redirect_uri)
redirect_uri:请使用urlEncode对链接进行处理
9. 其它注意事项
在用户修改微信头像后,旧的微信头像URL将会失效,因此开发者应该自己在获取用户信息后,将头像图片保存下来,避免微信头像URL失效后的异常情况。
原文链接:Dennis`s blog