SpringBoot 登录模块的主要流程

一:前端

表单里有mobile和password,注意password需要一个公用的盐值加密传输,通过ajax发送到服务器

二:LoginController

注入UserService, 调用userService.login(response, loginVo);

return Result.success(true);

因为login里的验证失败会直接抛出异常

三:UserService

判断LoginVO是否为空,空抛出异常GlobalException(CodeMsg.SERVER_ERROR), 注意通用全局异常继承RuntimeException;

判断手机号是否存在,不存在抛出GlobalException(CodeMsg.MOBILE_NOT_EXIST)

验证密码,需先拿到数据库里的salt

生成cookie

****** 分布式session ******

生成一个token,将登录成功的用户信息写入到redis,并同时写入到cookie,返回给客户端,注意cookie的过期时间需要和写入到redis的缓存一致。

四:通用全局异常处理器

拿到GlobalException里的codeMsg, 封装Result.error(codeMsg)并返回;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,309评论 19 139
  • 在分布式环境中,如何支持PC、APP(ios、android)等多端的会话共享,这也是所有公司都需要的解决方案,用...
    安琪拉_4b7e阅读 1,832评论 2 7
  • 亲情,是一份奇怪的情感, 我问过妈一个问题:为什么你要养我们呢? 看了动物世界,很多动物一出生就没人照顾,自力更生...
    二宁阅读 183评论 0 0
  • 刚刚到家,过节的节奏就是吃吃吃,我想剩余60天我可能就要吃草了,反思减肥这件事,我是两天打鱼三天晒网的,对我这个什...
    189期11组8号刘菲阅读 166评论 0 0
  • 遇见,是缘分的使然,在最美的年华,遇见最好的你,做故事里的主角。美好遇见美好,真心遇见真心,恰好的时间遇见恰好的你...
    论言站阅读 446评论 0 0

友情链接更多精彩内容