后端
redis中 uuid与flag(状态码 0,1,2,3 0有效,1扫码 2验证成功 3已过期)
1.二维码生成api java端使用相应的依赖包中的库函数 生成二维码 二维码中的内容是一个uuid(无规律的)字符串 将uuid存储在redis中 5分钟有效,flag=0
2.二维码状态查询api 查询reis中的uuid对应的flag值返回,若flag==2,则取出reids中uuid+“#“里的openid查询数据库,将数据库中获得身份信息返回
3.二维码扫码请求api 改变redis中uuid的值为1
3.二维码验证登录api 改变redis中的uuid值为2,将小程序端的上传code转化为openid,使用redis将uuid与openid绑定(此处有多种处理方式,反正要将uuid与openid绑定,可以使用mysql,redis因为uudi中存储了flag,所有我是用uudi+”#”,来存储openid)
网页
1.发送创建二维码的请求 获得二维码图片及对应的uuid
2.每个5秒 发送一次二维码状态查询api,参数是uuid,获得相应的状态 对不同状态码不同处理
小程序端:
1.使用微信提供的getScanCode()接口函数,可以获得二维码的内容(uuid),并发送二维码扫码请求 请求成功跳转到验证登录界面
2.在授权验证界面中,点击确认登录发送二维码登录api,将code上传到后端中