2.用户登录流程

用户登录流程

1)前端发送获取验证码请求

2)后端生成验证码,同时将生成的内容分成两个部分,一个是image,一个是code,例如 image里记录 1+ 1 = ?,code里记录2

3)后端为image 生成一个uuid,并写入redis,key为uuid,value为code,同时设置redis过期时间,也就是前端如果在指定时间内没有完成登录表单提交,则会提示验证码过期。

4)后端将image 和 uuid发送给前端,前端展示image图片

5)前端用户填写登录表单,点击提交。提交到后台的数据结构如下:

6)验证码核对,通过uuid 从redis获取code值,与用户传入的比较
7)下面的代码让人云里雾里了,下面的代码用到了spring框架内容。

上面这段代码会调用UserDetailsServiceloadUserByUsername方法。

该方法会与数据库的用户名、密码进行比对,注意密码是要进行hash计算 + 盐 后与数据库比较

8)后端验证完毕后,生成token发送给前端,token的生成是调用jwt库进行随机生成。

9)前端将token记录到cookies

至此 用户登录过程已完成,整个过程比较简单,除了刚才用到spring的认证框架,逻辑上有些跳转。

相关推荐
一 乐6 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
Boilermaker19926 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维6 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS6 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
꧁Q༒ོγ꧂7 小时前
LaTeX 语法入门指南
开发语言·latex
njsgcs7 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_997 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子7 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34167 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
古城小栈7 小时前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust