目的:获取用户信息
关于网页授权的两种scope的区别说明
- snsapi_base:获取用户的openid,静默授权。
- snsapi_userinfo:获取用户的基本信息,需要用户手动同意(可以获取用户多个信息)。
关于网页授权access_token和普通access_token的区别
- 网页授权access_token:通过OAuth2.0机制实现,用于网页授权后接口调用。
- 普通access_token:用于调用其他微信接口。
关于UnionID机制
- 网页授权获取用户基本信息遵循UnionID机制。
- UnionID用于区分同一个微信开放平台下的不同应用中的用户唯一性。
关于特殊场景下的静默授权
- snsapi_base为scope的网页授权是静默授权的。
- 已关注公众号的用户从公众号会话或自定义菜单进入网页授权页也是静默授权。
开发指南
网页授权流程分为四步:
- 引导用户进入授权页面同意授权,获取code。
- 通过code换取网页授权access_token。
- 如果需要,开发者可以刷新网页授权access_token。
- 通过网页授权access_token和openid获取用户基本信息。
调用频率限制
- 通过 code 换取 access_token:5 万/分钟
- 获取用户基本信息:5 万/分钟
- 刷新 access_token:5 万/分钟
网页授权接口列表
1. 第一步:用户同意授权,获取code
- **接口地址**:`https://open.weixin.qq.com/connect/oauth2/authorize`
- **参数说明**:
- `appid`: 公众号的唯一标识
- `redirect_uri`: 授权后重定向的回调链接地址
- `response_type`: 返回类型,请填写`code`
- `scope`: 应用授权作用域,`snsapi_base` 或 `snsapi_userinfo`
- `state`: 重定向后会带上`state`参数
- `#wechat_redirect`: 必须带此参数
2. 第二步:通过code换取网页授权access_token
● 接口地址:https://api.weixin.qq.com/sns/oauth2/access_token
● 参数说明:
○ appid: 公众号的唯一标识
○ secret: 公众号的appsecret
○ code: 第一步获取的code参数
○ grant_type: 填写为authorization_code
3. 第三步:刷新access_token(如果需要)
● 接口地址:https://api.weixin.qq.com/sns/oauth2/refresh_token
● 参数说明:
○ appid: 公众号的唯一标识
○ grant_type: 填写为refresh_token
○ refresh_token: 通过access_token获取到的refresh_token参数
4. 第四步:拉取用户信息(需scope为snsapi_userinfo
)
● 接口地址:https://api.weixin.qq.com/sns/userinfo
● 参数说明:
○ access_token: 网页授权接口调用凭证
○ openid: 用户的唯一标识
○ lang: 返回国家地区语言版本,如zh_CN
附:检验授权凭证(access_token)是否有效
● 接口地址:https://api.weixin.qq.com/sns/auth
● 参数说明:
○ access_token: 网页授权接口调用凭证
○ openid: 用户的唯一标识