news 2026/4/18 5:26:52

【场景】用户名+密码+验证码的登录全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【场景】用户名+密码+验证码的登录全流程

用户名+密码+验证码的登录全流程,核心是“前端校验→后端验证→安全确认→会话创建”,既保障安全性又兼顾用户体验,具体步骤如下:

一、前置准备(系统预设)

  • 定义用户标识:用户名可为手机号、邮箱或自定义账号,确保系统内唯一。
  • 密码规则:设置长度≥8位、含大小写字母+数字+特殊字符的复杂度要求,存储时用BCrypt算法加密并添加随机盐值。
  • 验证码规则:默认6位数字,有效期10分钟,60秒内可重发,单日发送次数限制(如5次)。

二、核心登录流程(7步闭环)

1. 用户发起登录请求

用户访问登录页面,输入用户名、密码,点击“获取验证码”按钮。

2. 前端前置校验
  • 校验输入格式:用户名是否符合规则(如手机号11位)、密码长度是否达标。
  • 防止无效请求:格式错误时即时提示(如“请输入正确手机号”),不向后端发送请求。
  • 控制发送频率:点击“获取验证码”后,按钮置灰60秒倒计时,避免重复发送。
3. 验证码生成与发送
  • 前端将手机号/用户名发送至后端,后端生成随机验证码和唯一UUID。
  • 后端通过Redis存储验证码(以“verification:sms:login:手机号”为键),并调用短信/邮箱服务商接口发送验证码。
  • 后端返回UUID给前端,前端存入sessionStorage(会话结束自动清除,更安全)。
4. 后端账号与密码验证

用户输入验证码后提交登录表单,前端将用户名、加密后的密码、验证码、UUID一并发送至后端。

  • 后端先校验账号状态:查询数据库确认用户名是否存在,是否被冻结/禁用。
  • 密码校验:用存储的盐值对提交密码重新哈希,与数据库中的加密密码比对,一致则进入下一步,不一致返回“密码错误”并记录次数。
5. 验证码有效性校验
  • 后端以用户名为键从Redis取出验证码和UUID,与前端提交的信息比对。
  • 校验通过:立即删除Redis中的验证码(防止重复使用);校验失败:提示“验证码错误/已过期”,失败次数达5次则临时锁定30分钟。
6. 会话创建与权限加载
  • 验证通过后,后端生成JWT Token(含用户ID、角色、30分钟过期时间),返回给前端存入cookie或localStorage。
  • 前端携带Token请求权限列表,后端查询用户关联的角色与操作权限(如“查看数据”“修改信息”)并返回。
7. 登录成功跳转

前端根据权限列表展示对应菜单和按钮,自动跳转至系统首页,完成登录。

三、异常场景处理

  • 密码错误:连续3次错误锁定账号,需通过手机号验证码或管理员解锁。
  • 验证码问题:超时或错误时,允许用户重新发送,明确提示剩余次数。
  • 账号异常:冻结/禁用状态下,前端提示“账号已锁定,请联系管理员”。
  • 会话失效:Token过期后自动跳转登录页,提示“登录已失效,请重新登录”。

四、关键安全与体验优化

  • 传输安全:所有数据通过HTTPS加密传输,防止中间人攻击。
  • 体验细节:提供“显示密码”按钮、清晰的错误提示(避免“登录失败”模糊表述)。
  • 防护机制:限制单IP/账号登录频率,防止暴力破解;记录登录日志,便于追溯异常操作。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 18:19:20

Wan2.2-T2V-A14B如何帮助小型工作室实现降本增效?

Wan2.2-T2V-A14B如何帮助小型工作室实现降本增效? 在短视频内容爆炸式增长的今天,客户对视频质量的要求越来越高,而交付周期却越来越短。对于只有三五人的小型创意工作室来说,这种压力尤为明显:一个产品宣传片动辄需要…

作者头像 李华
网站建设 2026/4/12 0:35:13

Android脱壳终极指南:BlackDex零门槛实战手册

Android脱壳终极指南:BlackDex零门槛实战手册 【免费下载链接】BlackDex BlackDex: 一个Android脱壳工具,支持5.0至12版本,无需依赖任何环境,可以快速对APK文件进行脱壳处理。 项目地址: https://gitcode.com/gh_mirrors/bl/Bla…

作者头像 李华
网站建设 2026/4/3 8:00:35

玩转B站视频下载:从入门到精通的完整攻略

还在为无法保存B站精彩视频而烦恼吗?bilibili-downloader作为一款持续更新的开源神器,让你轻松实现B站视频的永久收藏。无论是最新的动漫番剧,还是优质的知识分享,都能一键下载到本地,打造专属的个人媒体库。 【免费下…

作者头像 李华
网站建设 2026/4/6 1:36:05

3步快速解除AI编程助手试用限制|跨平台完整指南

3步快速解除AI编程助手试用限制|跨平台完整指南 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Youve reached your trial request limit. / Too many free trial accounts used on this machine. Please upgrade to pro. We have t…

作者头像 李华
网站建设 2026/4/12 5:26:16

PySwarms粒子群优化终极指南:从理论到实战的完整解决方案

PySwarms粒子群优化终极指南:从理论到实战的完整解决方案 【免费下载链接】pyswarms A research toolkit for particle swarm optimization in Python 项目地址: https://gitcode.com/gh_mirrors/py/pyswarms 你是否曾经为复杂的优化问题而苦恼?…

作者头像 李华
网站建设 2026/4/18 0:01:34

BiliDownload:2025年最实用的B站视频下载神器完整指南

BiliDownload:2025年最实用的B站视频下载神器完整指南 【免费下载链接】BiliDownload B站视频下载工具 项目地址: https://gitcode.com/gh_mirrors/bil/BiliDownload BiliDownload是一款专为B站用户打造的视频下载工具,通过调用B站官方API&#x…

作者头像 李华