授权登录流程对比
微信公众号/网页
微信文档地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
流程图如下:
特殊说明:
- 步骤1拼接的微信地址是:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect,其中参数含义如下:
- redirect_uri:微信服务端回调的地址,微信在回调的时候会携带微信给该用户分配的授权code和此处给微信的state值。
- state: 微信服务端回调的时候携带该参数到回调地址中。
小程序/小游戏
微信文档地址:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
流程图如下:
移动应用
微信文档地址:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Development_Guide.html
流程图如下:
特殊说明:
- 步骤1、2、3、4、5、6、7原生客户端和微信客户端之间通信其实是有做一些参数校验,微信客户端校验:安卓应该是包名和签名信息校验;iOS应该是boundleid校验;原生客户端校验:通过state值匹配正确进行校验的。
微信授权登录接口及参数对比
总结
- 授权登录这一块,服务端获取微信用户信息(openid+unionid)只分小程序(小游戏)和非小程序(小游戏)两种情况。
- 微信公众号(网页)的时候,回调地址redirect_uri中可以设置一些关键的path参数,这样微信回调开发者服务器的时候开发者可以多得到一些参数信息。(比如:appid、关键锚点信息等)。
- 在配置事件回调地址的时候,也可以设置一些关键的path参数,方便业务做统一扩展。(比如:appid、程序类型信息等)。