通过微信公众号-接口测试流程基本了解了公众号网页授权的流程,下面通过工程实现用户访问授权网页、获取微信用户信息.
微信网页授权流程
以下5点微信开发文档上有具体说明
- 用户同意授权,获取code
- 通过code换取网页授权access_token
- 刷新access_token(如果需要)
- 拉取用户信息(需scope为 snsapi_userinfo)
- 检验授权凭证(access_token)是否有效
在微信的自定义菜单中配置跳转到第三方地址 https://static-a8b78395-4840-40cd-a425-8373e6fee47a.bspapp.com/#/pages/uform/redirect?id=example
- 用户通过微信公众号发起页面请求
- 提前配置好的第三方地址,访问该地址,微信内部浏览器跳转到https://static-a8b78395-4840-40cd-a425-8373e6fee47a.bspapp.com/#/pages/uform/redirect?id=example
- 前端服务器的redirect页面向后端发起请求获取跳转的地址
- 后端通过前端发来的重定向url根据一定规则设置好appid、redirect_uri、response_type、scope、state的微信授权链接
- 前端服务器的redirect页面收到应答在当前页面打开微信授权链接
- 如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE
- 前端服务器的example页面携带code参数向后端发起网页授权换取access_token
- 后端向微信发起授权请求,收到微信返回的信息保存到数据库中,其中的参数openid返回给前端,前端将openid保存在本地,等待下次使用