首页/新闻资讯/正文详情

若依登录功能后端调用流程分析

发布时间:2026/11/4 2:27:09 来源:云帆数科 栏目:资讯中心
若依登录功能后端调用流程分析
若依版本v3.9.2 前后端分离版本参考流程时序图登录流程前端页面先获取验证码base64和验证码key返回给前端前端根据base64渲染出验证码验证码结果与key放入redis然后调用登录接口根据用户名密码验证码(key以及用户输入的结果)进行校验代码定义在SysLoginController:在LoginService中会进行参数校验如验证码校验用户名与密码是否符合规则等然后进行用户名密码比对比对成功创建token并返回给前端用于后续接口的登录校验public String login(String username, String password, String code, String uuid) { // 验证码校验 validateCaptcha(username, code, uuid); // 登录前置校验 loginPreCheck(username, password); // 用户验证 Authentication authentication null; try { UsernamePasswordAuthenticationToken authenticationToken new UsernamePasswordAuthenticationToken(username, password); AuthenticationContextHolder.setContext(authenticationToken); // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername authentication authenticationManager.authenticate(authenticationToken); } catch (Exception e) { if (e instanceof BadCredentialsException) { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message(user.password.not.match))); throw new UserPasswordNotMatchException(); } else { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage())); throw new ServiceException(e.getMessage()); } } finally { AuthenticationContextHolder.clearContext(); } AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message(user.login.success))); LoginUser loginUser (LoginUser) authentication.getPrincipal(); recordLoginInfo(loginUser.getUserId()); // 生成token return tokenService.createToken(loginUser); }创建token的同时会将登录凭证(token)与用户信息存入redis并设置过期时间进入首页由于前面登录成功获取到了token, 前端会将token存入cookie用于后续接口调用的登录校验在首页会调用/getInfo和/getRouters接口获取用户信息和路由信息这两个接口都需要登录校验这两次请求都会被JwtAuthenticationTokenFilter拦截在这个过滤器中会进行token校验校验成功会将用户信息放入SpringSecurity上下文在获取路由信息时会从SpringSecurity获取用户信息如果获取失败会报错并返回401之后根据用户的角色权限返回给前端对应的路由信息继续访问首页退出登录流程前端调用/logout接口会进行LogoutSuccessHandlerImpl会根据token找到用户信息并在redis中删除对应登录凭证记录用户退出登录日志返回前端响应退出登录成功前端知道退出登录成功之后删除存储在pinia中的用户信息后续请求接口不会携带token

相关推荐

让启元 T1 Pro 认出点赞、V 字、布和石头:一次从相机到模型的二次开发实录
让启元 T1 Pro 认出点赞、V 字、布和石头:一次从相机到模型的二次开发实录

让启元 T1 Pro 认出点赞、V 字、布和石头:一次从相机到模型的二次开发实录让启元 T1 Pro 认出点赞、V 字、布和石头:一次从相机到模型的二次开发实录一、第一步不是训练模型,而是让电脑真正读到机器人二、120 帧里没有手,问题出在… · 2026/11/4 2:27:09

把文件拖进去就完事:这个免费开源的工具,能转 200多种格式
把文件拖进去就完事:这个免费开源的工具,能转 200多种格式

软件概要 平时要转个文件格式,是不是挺烦的。在线的转换网站,传文件慢,还得担心文件传上去安不安全;本地软件吧,动不动就让你开会员。 后我发现一个软件,有了它,以后不用再开那些网站了&#… · 2026/11/4 2:27:09

WebStorm Windows 版安装配置与实战效能评测
WebStorm Windows 版安装配置与实战效能评测

WebStorm Windows 版安装配置与实战效能评测 版本基准:WebStorm 2026.2 / Windows 10 & 11 评测立场:独立、可复现、数据驱动。不回避短板,不夸大优势。面向正在决策“是否值得为 WebStorm 付出学习成本和资源开销”的开发者。摘要 WebSt… · 2026/11/4 2:27:09

从照片到可漫游的 3D 世界:image-blaster 图片转 3D 完整实操指南
从照片到可漫游的 3D 世界:image-blaster 图片转 3D 完整实操指南

从照片到可漫游的 3D 世界:image-blaster 图片转 3D 完整实操指南 【免费下载链接】image-blaster An image-to-world skillset for Claude. 项目地址: https://gitcode.com/gh_mirrors/im/image-blaster image-blaster 是一个面向 Claude 的图片转 3D 技能包… · 2026/11/4 6:12:23

Listen1:一个搜索框聚合 7 个平台的音乐,完整安装使用指南
Listen1:一个搜索框聚合 7 个平台的音乐,完整安装使用指南

Listen1:一个搜索框聚合 7 个平台的音乐,完整安装使用指南 【免费下载链接】listen1_chrome_extension one for all free music in china (chrome extension, also works for firefox) 项目地址: https://gitcode.com/gh_mirrors/li/listen1_chrome_ex… · 2026/11/4 6:12:23

一个 Markdown 文件做出幻灯片:Marp for VS Code 安装、预览与导出指南
一个 Markdown 文件做出幻灯片:Marp for VS Code 安装、预览与导出指南

一个 Markdown 文件做出幻灯片:Marp for VS Code 安装、预览与导出指南 【免费下载链接】marp The entrance repository of Markdown presentation ecosystem 项目地址: https://gitcode.com/gh_mirrors/mar/marp Marp 是一套基于 Markdown 的演示文稿工具&a… · 2026/11/4 6:12:23

Hermes Agent:智能GitHub自动化工作流,提升开发团队效率70%的最佳实践
Hermes Agent:智能GitHub自动化工作流,提升开发团队效率70%的最佳实践

Hermes Agent:智能GitHub自动化工作流,提升开发团队效率70%的最佳实践 在当今快节奏的开发环境中,团队每天花费数小时处理GitHub上的重复性任务:代码审查、PR管理、Issue跟踪等。手动操作不仅效率低下,还容易引入人为… · 2026/11/4 6:12:23

docker搭建jenkins
docker搭建jenkins

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:12:23

SolidCraft 上手指南:开源参数化 3D 建模,免费桌面、网页与 MCP AI 建模
SolidCraft 上手指南:开源参数化 3D 建模,免费桌面、网页与 MCP AI 建模

SolidCraft 上手指南:开源参数化 3D 建模,免费桌面、网页与 MCP AI 建模 【免费下载链接】solidcraft SolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation through MCP. 项目地址: https://… · 2026/11/4 6:11:22

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码