微信登录两种实现方法:
说在前面:由于微信的限制不得不将vue的路由模式切换为history模式。
第一种:
后端实现二维码,将二维码的跳转链接返回前端,并且传一个state给前端做标识,前端需要点击跳转到一个单独的微信登录页面,然后开始调用轮询接口传入state监听用户扫码的操作
检测后端返回字段,success为后端检测到用户点击了授权,error为用户取消授权,
用户授权后用state继续请求微信数据,成功拿到用户数据
第二种: 前端生成二维码
首先根据官方文档,需要建立一个放置二维码的容器(由于我的项目登录采用的是弹窗,所以不能再mounted中渲染二维码,因为弹窗在父组件加载时就已经渲染好,所以使用watch侦听控制登录弹窗的参数进行以下操作)