网页授权获取用户信息的方法
网页授权获取用户信息是指在用户同意授权的前提下,通过用户的公众号信息获取用户的基本信息。这种方式通常用于开发人员在开发公众号应用时需要获取用户的信息。
1. 授权流程
用户同意授权公众号后,公众号可以获取用户基本信息和用户帐号的 标识。授权流程如下图所示:
首先,用户在公众号中点击授权按钮,然后会跳转到微信开放平台的授权页面,用户同意授权后再跳转回公众号,公众号拿到了授权code。接着,公众号通过code换取用户的access_token,最后通过access_token获取用户的基本信息。
2. 获取授权code
用户在公众号中点击授权按钮后会跳转到微信开放平台的授权页面,需要用户同意授权公众号获取用户信息。用户同意授权后,微信会回调一个授权页面的URL,包含了授权code,例如:
https://wxapi.com/oauth?code=CODE&state=STATE
其中,CODE为授权code,STATE为公众号传过去的参数,用于防止CSRF攻击。授权code只能使用一次,有效期为5分钟。
3. 获取access_token
拿到授权code后,公众号需要通过code换取用户的access_token,API请求地址为:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
其中,APPID为公众号的 标识,SECRET为公众号的密钥,CODE为授权code,grant_type为授权类型,固定为authorization_code。请求成功后会返回用户的access_token,例如:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
其中,access_token是用户的授权token,expires_in是access_token的有效期,refresh_token可以用于刷新access_token,openid是用户的 标识。
4. 获取用户基本信息
拿到access_token后,公众号就可以通过access_token获取用户的基本信息了,API请求地址为:
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
其中,access_token为用户授权token,openid为用户的 标识,lang为返回用户信息的语言,固定为zh_CN。请求成功后会返回用户的基本信息,例如:
{
"openid":"OPENID",
"nickname":"NICKNAME",
"sex":1,
"province":"PROVINCE",
"city":"CITY",
"country":"COUNTRY",
"headimgurl":
"https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKxiaCNibUVanObXplfg1Oiaj7BMN1G0sptTTf7ZtuzYibKTQyicmE86RrwsJ
XNXRdNTMLg3icjarsn7Vg/132",
"privilege":[
"PRIVILEGE1",
"PRIVILEGE2"
],
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
其中,nickname为用户的昵称,sex为用户的性别(0表示未知,1表示男性,2表示女性),province为用户所在省份,city为用户所在城市,country为用户所在国家,headimgurl为用户头像url,privilege为用户特权信息,unionid为用户在开放平台的 标识。
总之,网页授权获取用户信息是开发公众号应用常用的方法之一,需要开发人员理解掌握其中的授权流程和API调用方法。
