微信授权登录-前后端分离
来源:互联网 发布:java认证培训中心 编辑:程序博客网 时间:2024/06/05 04:20
简介
在前后端分离情况下实现微信服务号和订阅号授权登录,项目使用springboot+Vue前后端分离的开发模式。
备注:目前只提供后端代码实现以及业务逻辑
流程图
服务号
开发逻辑
进入活动页面根据code
和state
参数判断,如果参数为空则调用微信授权URL路径接口,否则就调用获取用户授权信息接口,通过code
和state
就能够获取到当前授权用户的用户信息。
步骤
1、首次进入页面,获取微信重定向URL
首次进入页面,如果地址中没有code和state,那么就表示当前活动没有授权用户信息,所以此时需要获取后台拼接好的微信重定向URL接口,然后通过URL跳转授权。
接口返回如下字符串:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri= redirectURL&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
- APPID : 服务号APPID
- redireURL : 重定向页面地址
具体参考AuthorizedLoginController类中的authorizedLoginUrl方法
2、通过微信接口重定向到活动页面
通过用户确认授权,微信再重定向到活动页面,并且返回code和state参数,通过这两个参数再次调后台接口,获取用户授权信息。
http://m.ershouhui.com/yf/201710/finger/activity/?code=021ieRZt1CVY3a0GqNZt175QZt1ieRZE&state=STATE
根据返回的code和state,处理之后调用获取授权信息方法
3、通过code和state获取用户信息
根据code和state参数,获取用户授权信息。
具体参考AuthorizedLoginController类中的getWxAuthorizedUser方法
订阅号
由于订阅号无法从网页直接授权登录,所以需要借助于服务号APPID来关联实现用户授权等操作。
想获取当前用户是否关注订阅号,需要通过https://api.weixin.qq.com/cgi-bin/user/info?access_token=%s&openid=%s&lang=zh_CN
来获取用户信息,返回的参数中有一个字段叫subscribe,为1表示已经关注,为0表示未关注。
参考资料
- 微信JS-SDK开发的Demo
- 微信JS-SDK开发文档
- 申请微信公众平台接口测试账号
参与者
pengcheng3211@gmail.com
- 微信授权登录-前后端分离
- 前后端分离微信支付回调
- laravel 实现前后端登录分离
- 微信授权域名允许子域名,前后端分离nginx做子域名静态页面映射,解决nginx跨域以及ajax跨域
- 微信登录授权
- 微信授权登录
- 微信授权登录
- 微信授权登录
- 微信授权登录
- 微信授权登录
- 微信授权登录
- 微信授权登录
- 微信登录授权
- 微信授权登录()
- 微信授权登录
- web前后端分离
- 前后端分离
- 前后端分离问题
- Python dict词典排序
- Qt 键盘、鼠标事件的处理
- 不想git更新代码时产生merge记录,可以使用git rebase命令
- 计算机网络一些题
- Servlet 生命周期、工作原理
- 微信授权登录-前后端分离
- 更新所有pip安装的程序
- Vue报错笔记(1)vue.js:515 [Vue warn]: Property or method "name" is not defined on the instance but refere
- python的ID方法
- 实现栈的pop,push和getMin
- 怎样用JS实现关闭当前窗口
- PHP依赖注入
- 文件处理命令tac
- 第7周项目2- 建立链队算法库