微信网页授权
在网页内使用微信账户登录
1.打开授权页面
引导用户打开
[https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect]直接超链打开
参数列表:
名称 |
描述 |
appid |
应用ID |
redirect_uri |
授权完成后转向的URL |
response_type |
code:code方式回传数据 |
scope |
snsapi_base: 是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面);snsapi_userinfo: 是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。 |
state附加信息,会原样返回到回调URL
随后页面跳转到: redirect_uri/?code=CODE&state=STATE
2.获取access_token
若授权方式为snsapi_base,则直接跳转到redirect_uri,不会再有此步骤
从uri参数中获取code,并请求
[https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code]反向代理或后台请求
参数列表 :
名称 |
描述 |
appid |
应用ID |
secret |
应用secret |
code |
回传的code参数 |
grant_type |
授权类型authorization_code |
返回数据包示例:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
名称 |
描述 |
access_token |
Access token |
expires_in |
超时时间(秒) |
refresh_token |
用户刷新access token |
openid |
用户唯一标识 |
scope |
用户授权作用域 |
3.拉取用户信息
请求[https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN ] 反向代理或后台请求
参数列表
名称 |
描述 |
Access_token |
Access token |
openid |
用户openid |
返回数据包示例
{ “openid”:” OPENID”,
” nickname”: NICKNAME,
“sex”:”1”,
“province”:”PROVINCE”
“city”:”CITY”,
“country”:”COUNTRY”,
“headimgurl”: “http://wx./mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ
4eMsv84eavHiaiceqxibJxCfHe/46”,
“privilege”:[ “PRIVILEGE1” “PRIVILEGE2” ],
“unionid”: “o6_bmasdasdsad6_2sgVt7hMZOPfL”
}
|