SpringBoot实现网站的登陆注册逻辑记录

 更新时间:2021年10月12日 15:32:56   作者:xbhog  
登陆注册功能是我们日常开发中经常遇到的一个功能,下面这篇文章主要给大家介绍了关于SpringBoot实现网站的登陆注册逻辑的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

该文章主要是为了整理之前学习项目中的知识点,并进行一定程度的理解。

技术列表:

  • SpringBoot
  • MySQL
  • redis
  • JWT

用户登录逻辑:

首先打开前端登录页面,F12进行网页URL抓取:

随便输入信息,查看请求后端的地址:

地址:

请求 URL: http://localhost:8888/login
请求方法: POST
状态代码: 200 
远程地址: [::1]:8888
引用站点策略: strict-origin-when-cross-origin

很明显,前端用户输入账户,通过post请求传递给后端接收:

@RequestMapping("/login")
public class LoginController {
    @Autowired
    private LoginService loginService;
    @PostMapping
    public Result login(@RequestBody LoginParam loginParam){
        return loginService.login(loginParam);
    }

}

这里为了方便传输,把前端参数封装成对象传入.

后端验证查询账户的逻辑操作:

  • 获取账户密码
  • 判断账户密码是否为空
  • 密码加密,采用MD5加密+盐的操作
  • 通过处理的账户密码(加密)进行数据库查询
String pwd = DigestUtils.md5Hex(password + salt);
//根据账号和加密的密码进行数据库的查找
SysUser sysUser = sysUserService.findUser(account, pwd);

查找成功,使用JWT工具包生成token,保存到redis中

向前端返回生成的token,检查token,进行登录

{
    "code": 200,
    "success": true,
    "msg": "success",
    "data": "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MzQ4OTY1MDIsInVzZXJJZCI6MSwiaWF0IjoxNjM0MDA3NDcwfQ.9elJSiGa-QARLqKGLTeFW9go7ujsArd0QV_HihHfEm0"
}

这里就实现了JWT和redis实现简单的登录验证功能。

用户注册逻辑:

前端请求:

前端传递账户名、密码、昵称,调用http://localhost:8888/register地址进行post传参,后端接收参数

1、获取前端参数,判断参数是否合法(是否为空)

2、判断账户是否存在,存在,返回账户已经被注册了的json数据

3、不存在、注册账户(生成User对象)调用保存接口,保存的时候需要将密码进行MD5+盐 加密

4、生成token令牌

String token = JWTUtils.createToken(sysUser.getId());

5、存入redis 并返回

这里存入redis是因为,注册成功后会跳转到前端页面,前端页面会去redis中找user的信息进行对比,如果存在,显示登录,反之登录失败。

6、注意加上事务,一旦中间的任何过程出现问题,注册的用户需要回滚(防止脏数据)

将生成得token传递给前端:

{
    "code": 200,
    "success": true,
    "msg": "success",
    "data": "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MzQ4NDc0MzQsInVzZXJJZCI6MTQ0NzU1MjU3MDYzMDQzNDgxNywiaWF0IjoxNjMzOTU4NDAxfQ.zn5meG_lUWROuz7TmkUGS0MTjO1-TDQa42uM_-uhXqs"
}

前端调用该接口,:

http://localhost:8888/users/currentUser

前端将获得token传递给后端接口currentUser,在redis中找到user信息,校验信息,解析数据,返回用户基本信息,前端解析

前端index.js部分代码段:

login({commit}, user) {
      return new Promise((resolve, reject) => {
        login(user.account, user.password).then(data => {
          if(data.success){
            commit('SET_TOKEN', data.data)
            setToken(data.data)
            resolve()
          }else{
            reject(data.msg)
          }
        }).catch(error => {
          reject(error)
        })
      })

到这里就是简单的登录注册的功能,上述内容都是部分代码段,如果有需要学习的可以评论留言。

参考文献:

【码神之路】博客开发;

总结

到此这篇关于SpringBoot实现网站登陆注册逻辑的文章就介绍到这了,更多相关SpringBoot登陆注册逻辑内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解如何使用Mybatis的拦截器

    详解如何使用Mybatis的拦截器

    MyBatis 拦截器是 MyBatis 提供的一个强大特性,它允许你在 MyBatis 执行其核心逻辑的关键节点插入自定义逻辑,从而改变 MyBatis 的默认行为,本文给大家详细介绍了如何使用Mybatis的拦截器,需要的朋友可以参考下
    2024-03-03
  • 在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

    在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

    在MyBatis的XML映射文件中,<trim>元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示例展示了如何在UPDATE、SELECT、INSERT和SQL片段中使用<trim>元素,以实现动态的SQL构建,感兴趣的朋友一起看看吧
    2025-01-01
  • Spring Security放行的接口Knife4j静态资源的问题小结

    Spring Security放行的接口Knife4j静态资源的问题小结

    这篇文章主要介绍了Spring Security使用Knife4j静态资源的问题小结,项目中使用 Spring Security 做身份认证和授权,使用 Knife4j 做接口调试,需要 Spring Security 放行的接口记录在 RequestMatcherConstant 类中,感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • spring boot使用sonarqube来检查技术债务

    spring boot使用sonarqube来检查技术债务

    今天小编就为大家分享一篇关于spring boot使用sonarqube来检查技术债务,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • java 取模与取余的区别说明

    java 取模与取余的区别说明

    这篇文章主要介绍了java 取模与取余的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Java实现二分法变种的示例代码

    Java实现二分法变种的示例代码

    这篇文章主要为大家介绍了Java实现二分法变种的示例代码复,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • SpringIOC框架的简单实现步骤

    SpringIOC框架的简单实现步骤

    这篇文章主要介绍了SpringIOC框架简单实现步骤,帮助大家更好的理解和学习使用Spring,感兴趣的朋友可以了解下
    2021-05-05
  • JAVA中调用C语言函数的实现方式

    JAVA中调用C语言函数的实现方式

    这篇文章主要介绍了JAVA中调用C语言函数的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • springcloud使用profile实现多环境配置方式

    springcloud使用profile实现多环境配置方式

    这篇文章主要介绍了springcloud使用profile实现多环境配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • SpringBoot文件上传(本地存储)回显前端操作方法

    SpringBoot文件上传(本地存储)回显前端操作方法

    这篇文章主要介绍了SpringBoot文件上传(本地存储)回显前端操作方法的相关资料,文中讲解了文件上传的基本原理,包括前端调用后端接口上传文件,后端返回文件路径给前端,前端通过路径访问图片,需要的朋友可以参考下
    2024-11-11

最新评论