一般网站应用使用微信扫码登录使用的是微信开放平台的接口,但注册开放平台需要提供企业信息,而且开放平台并没有提供测试账号,个人想要直接通过开放平台实现微信授权登录是不可行的。
微信在公众号中提供了测试账号,我们可以通过公众号实现微信授权;
准备工作
1.申请微信公众号测试账号
2.设置授权回调页面地址
3.内网穿透
可以使用natapp实现内网穿透
4.引入依赖
1 | <!--WeChat公众号--> |
代码实现
jsp页面
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> |
controller
前端发起请求到后端,后端生成带uuid的授权链接,返回链接与uuid到前端页面,
并将uuid作为key存入redis中,前端页面生成二维码,用户扫描二维码,授权登录,微信回调当前接口
传来uuid与code,通过code再调用微信接口获得用户信息,将用户的openid或者user对象作为value保存到redis和数据库中,
前端获得二维码图片后轮询redis,查看redis中是否有user对象或openid,有则跳转,实现扫码登录
1 |
|