在之后的项目中,可能要遇到从微信入口进入到游戏页面的操作,那么微信授权之后开发者又是如何获取用户的基本信息的?
第一步:用户同意授权,获取code
下图为scope等于snsapi_userinfo时的授权页面:
* 用户同意授权后*
如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。若用户禁止授权,则重定向后不会带上code参数,仅会带上state参数redirect_uri?state=STATE
第二步:通过code换取网页授权access_token
此时的access_token
是一个特殊的网页授权access_token
,与基础支持中的不同。
第三步:刷新access_token
由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,refresh_token拥有较长的有效期(7天、30天、60天、90天),当refresh_token失效的后,需要用户重新授权。
第四步:拉取用户信息
通过 access_token
和openid
拉取用户信息,正确时返回的JSON数据:
{
"openid":" OPENID",
" nickname": NICKNAME,
"sex":"1",
"province":"PROVINCE"
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
"privilege":[
"PRIVILEGE1"
"PRIVILEGE2"
],
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}