Spring Boot 实现扫码登录。

本文详细介绍了如何在Spring Boot中实现扫码登录功能,包括所需表结构、涉及的角色、关键接口、操作步骤以及核心代码示例,特别提到了WebSocket在其中的作用。同时,文章还分享了一个持续更新的Spring Boot教程资源。
摘要由CSDN通过智能技术生成

这种方式 实现扫码登录 太香了!!!

需要更多教程,微信扫码即可
      https://i-blog.csdnimg.cn/blog_migrate/4517cd309f54d754ce7f78e279438728.jpeg  

 

一、首先需要一张表

记录一下谁扫码了。谁登录了。

User_Token表

字段如下:

  • uuid : 用于确保唯一性

  • userId :谁登录的

  • loginTime :登录时间

  • createTime :创建时间 用于判断是否过期

  • state:是否二维码失效 0有效 1失效

二、角色都有哪些

需要分析一下。扫码登录这个业务逻辑都有哪些角色

  • android端 or 微信Web端 :扫码

  • PC端 :被扫。登录

  • 服务端:掌控全局,提供接口。

三、接口都需要哪些?

有了角色。需要接口了。

所以咱们的接口有2个!

  • 生成二维码接口:生成一个二维码。二维码中有UUID。

  • 确认身份接口:确定身份以及判断是否二维码过期等

四、步骤

那句话怎么说的来着。要把大象装冰箱一共分几步?

  • PC端打开。调用生成二维码接口 并与 服务端建立链接。链接使用uuid进行绑定

  • 微信Web端进行扫码。获取二维码中的uuid。

  • 微信Web端拿到uuid以后。显示是否登录页面。点击确定后 调用 确认身份接口。

  • 确认身份接口通过以后。服务端给PC端发送信息。完成登录。此时链接断开。

  • 如果您正在学习Spring Boot,推荐一个连载多年还在继续更新的免费教程:http://blog.didispace.com/spring-boot-learning-2x/

好了!分析完了这些。你们一定在想。。还有完没完啊。。不要在BB了。。赶紧贴代码吧。。

作者:观众老爷们。我这是在教给你们如何思考的方法呀?

那么开始贴代码吧!希望大家在看到的同时也可以自己进行思考。

五、疯狂贴代码

首先需要获取二维码的代码对不对!贴!

//获取登录二维码、放入Token
@RequestMapping(value = "/getLoginQr" ,method = RequestMethod.GET)
public void createCodeImg(HttpServletRequest request, HttpServletResponse response){
    response.setHeader("Pragma", "No-cache");
    response.setHeader("Cache-Control", "no-cache");

    response.setDateHeader("Expires", 0);
    response.setContentType("image/jpeg");

    try {
        //这里没啥操作 就是生成一个UUID插入 数据库的表里
        String uuid = userService.createQrImg();
        response.setHeader("uuid", uuid);
        // 这里是开源工具类 hutool里的QrCodeUtil 
        // 网址:http://hutool.mydoc.io/
        QrCodeUtil.generate(uuid, 300, 300, "jpg",response.getOutputStream());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

有了获取二维码的接口。相对的前端需要调用。

知识点:动态加载图片流并取出header中的参数

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值