1 第一步:用户同意授权,获取code
2 第二步:通过 code 换取网页授权access_token
3 第三步:刷新access_token(如果需要)
4 第四步:拉取用户信息(需 scope 为 snsapi_userinfo)
5 附:检验授权凭证(access_token)是否有效
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
appid | 是 | 公众号的唯一标识 |
redirect_uri | 是 | 授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理 |
response_type | 是 | 返回类型,请填写code |
scope | 是 | 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 ) |
state | 否 | 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节 |
#wechat_redirect | 是 | 无论直接打开还是做页面302重定向时候,必须带此参数 |
redirect_uri地址设置
第一步,获取用户code
参数拆解
https://open.weixin.qq.com/connect/oauth2/authorize?
appid=wxdea7292b7998fc4a&redirect_uri=http://127.0.0.1:8080&
response_type=code&
scope=snsapi_userinfo&
state=123#wechat_redirect
完整示例链接
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxdea7292b7998fc4a&redirect_uri=http://127.0.0.1:8080&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect
第二步,通过code换取网页授权access_token
获取code后,请求以下链接获取access_token:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
appid | 是 | 公众号的唯一标识 |
secret | 是 | 公众号的appsecret |
code | 是 | 填写第一步获取的code参数 |
grant_type | 是 | 填写为authorization_code |
返回说明
完整实例:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxdea7292b7998fc4a&secret=db88cecb2096f1214bb9dcb8ef21bce5&code=021wlMUQ0cAAP623hkSQ0SeOUQ0wlMUW&state&grant_type=authorization_code
正确时返回的JSON数据包如下:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
返回参数说明图
第三步:拉取用户信息(需scope为snsapi_userinfo)
如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。
请求方法http:GET(请使用https协议)
https://api.weixin.qq.com/sns/userinfo?access_token=填写获得的token&openid=用户openid&lang=zh_CN
完整实例
https://api.weixin.qq.com/sns/userinfo?access_token=26_Jxwpdr8ENmsB1oHYw6rrCn6KGIrNHG6j9SUFT0YVP0njuwKaR7U5ikXNhp_MRRdm7jRVV7ExmS5USRnbdDGGYQr74DSRYXYP4uEYDqgCwFg&openid=ohQX75okjil1zfbjG6lwC9o_j2K0&lang=zh_CN
官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html