微信Oauth2.0授权流程
2018-02-01 14:57
162 查看
微信网页授权官方wiki页:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
授权时序图:
要点:
1. 用户在微信客户端访问H5页面,我们需要知道该用户是谁,就需要进行微信oauth2.0授权。我们拼接一个授权地址,返回给前端,前端浏览器进行重定向到该链接。参考链接如下:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect2. 如果不是静默授权(snsapi_userinfo),则弹出要求获取用户信息的窗口,用户需要点击确认登录;如果是静默授权(snsapi_base)则不会有弹窗。
3. 授权后,微信要求用户重定向到一个地址(第一步拼接的redirect_uri),并将code和state传给我们。我们根据code去微信换取access_token,再通过access_token和用户open_id到微信拉取该用户信息。
注意点:
(1)这个redirect_uri一般是我们的接口地址,例如:http://www.xxx.com/api/1.0/web/weixin/callback
(2)只要用户关注了我们的服务号,即使是静默授权,也是可以获取用户的信息
拉取到的用户信息示例:
WxMpUser[
subscribe=true
openId=oNfgYuE....I4tzGk
nickname=世界
sex=女
language=zh_CN
city=
province=
country=
headImgUrl=http://wx.qlogo.cn/mmopen/…xUjaaIM/132
subscribeTime=1487224007
sexId=2
remark=
groupId=0
tagIds={}
]4. 拿到用户信息后,我们就知道了该用户是谁,在后台就可以将用户信息存入数据库,给用户分配一个系统用户id,在后台帮助用户进行登录,将用户信息存入session等后续操作。
授权时序图:
要点:
1. 用户在微信客户端访问H5页面,我们需要知道该用户是谁,就需要进行微信oauth2.0授权。我们拼接一个授权地址,返回给前端,前端浏览器进行重定向到该链接。参考链接如下:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect2. 如果不是静默授权(snsapi_userinfo),则弹出要求获取用户信息的窗口,用户需要点击确认登录;如果是静默授权(snsapi_base)则不会有弹窗。
3. 授权后,微信要求用户重定向到一个地址(第一步拼接的redirect_uri),并将code和state传给我们。我们根据code去微信换取access_token,再通过access_token和用户open_id到微信拉取该用户信息。
注意点:
(1)这个redirect_uri一般是我们的接口地址,例如:http://www.xxx.com/api/1.0/web/weixin/callback
(2)只要用户关注了我们的服务号,即使是静默授权,也是可以获取用户的信息
拉取到的用户信息示例:
WxMpUser[
subscribe=true
openId=oNfgYuE....I4tzGk
nickname=世界
sex=女
language=zh_CN
city=
province=
country=
headImgUrl=http://wx.qlogo.cn/mmopen/…xUjaaIM/132
subscribeTime=1487224007
sexId=2
remark=
groupId=0
tagIds={}
]4. 拿到用户信息后,我们就知道了该用户是谁,在后台就可以将用户信息存入数据库,给用户分配一个系统用户id,在后台帮助用户进行登录,将用户信息存入session等后续操作。
相关文章推荐
- 夺命雷公狗---微信开发51----网页授权(oauth2.0)获取用户基本信息接口(1)
- 微信网页授权和部分公众号接口接入(详细流程介绍)
- OAuth2.0授权原理及开发流程详解
- PHP---微信OAuth2.0网页授权获取用户信息
- 微信开发——OAuth2.0授权
- OAuth2.0协议 - OAuth授权流程详解
- C#-MVC开发微信应用(2)--OAuth2.0网页授权
- 微信开放平台---授权流程
- 微信开发网页授权OAuth2.0注意事项
- 微信开放平台之公众号第三方平台授权流程
- 用chrome模拟微信浏览器访问需要OAuth2.0网页授权的页面
- 用chrome模拟微信浏览器访问需要OAuth2.0网页授权的页面
- 微信公众平台开发(71)OAuth2.0网页授权---流程
- 夺命雷公狗---微信开发52----网页授权(oauth2.0)获取用户基本信息接口(2)
- 解决微信OAuth2.0网页授权只能设置一个回调域名的问题
- 解决微信OAuth2.0网页授权回调域名只能设置一个的问题
- 微信公共服务平台开发(.Net 的实现)12-------网页授权(上 :更加深入理解OAuth2.0 )
- 微信公共服务平台开发(.Net 的实现)12-------网页授权(上 :更加深入理解OAuth2.0 )
- 微信公众号开发全部流程,测试号开发微信授权登陆 3
- 用chrome模拟微信浏览器访问需要OAuth2.0网页授权的页面