当前位置: 首页 > article >正文

系统设计——登录流程

用户登录流程通常包含用户身份验证、令牌生成、以及可能的多因子认证等步骤。以下是一个典型的用户登录流程:

1. 用户发起登录请求

  • 操作:用户在登录页面输入用户名和密码,点击登录按钮。
  • 前端行为:前端将用户输入的用户名和密码通过HTTPS请求发送到服务器的登录接口(例如:POST /api/auth/login)。

2. 服务器验证用户身份

  • 操作
    1. 服务器接收到登录请求后,根据用户名查询数据库中的用户记录。
    2. 服务器使用安全算法(如bcrypt)验证用户输入的密码是否与存储的加密密码匹配。
    3. 如果用户存在且密码匹配,则通过验证;否则,返回错误响应(如“用户名或密码错误”)。

3. 生成访问令牌 (Access Token)

  • 操作
    1. 验证通过后,服务器生成一个访问令牌(Access Token),通常使用JWT(JSON Web Token)或其他加密方式。
    2. 令牌包含用户的身份信息(如用户ID、角色)和令牌的有效期。
    3. 令牌生成后,服务器将其返回给客户端。

4. (可选)多因子认证 (MFA)

  • 操作
    1. 如果系统启用了多因子认证,服务器会要求用户进行第二步验证,如输入短信验证码或通过移动应用验证。
    2. 用户输入二次认证信息后,服务器验证该信息是否正确。
    3. 验证通过后,才会完成登录流程。

5. 客户端存储令牌

  • 操作:前端将服务器返回的访问令牌保存在本地存储(如localStoragesessionStorage)中,用于后续的身份验证。

6. 客户端携带令牌访问受保护的资源

  • 操作
    1. 用户登录成功后,访问系统的受保护页面或API时,前端会在HTTP请求的Authorization头部附上访问令牌。
    2. 服务器在接收到请求时,验证令牌的有效性(是否未过期、签名是否正确)。
    3. 令牌验证通过后,服务器允许访问资源。

7. (可选)签名认证

  • 操作
    1. 在某些关键操作或访问特定资源时,前端会生成签名信息,附加在请求中。
    2. 服务器接收到请求后,验证签名的真实性(通常使用预定义的密钥或非对称加密的公钥)。
    3. 签名验证通过后,服务器允许操作或访问资源。

8. 访问资源

  • 操作:验证成功后,服务器返回所请求的资源,或执行用户请求的操作。

总结

整个登录流程涉及用户身份验证、令牌生成与验证、以及可能的多因子认证或签名认证,确保用户身份的真实性和系统资源的安全性。系统通过令牌管理用户的会话,通过签名保护特定操作或资源的安全。


http://www.kler.cn/news/282961.html

相关文章:

  • Spring Boot启用GZIP压缩
  • 【Kafka】Windows下安装Kafka(全面)
  • wpf datagrid通过点击单元格 获取行列索引2.0
  • golang RSA 解密前端jsencrypt发送的数据时异常 crypto/rsa: decryption error 解决方法
  • P1149 [NOIP2008 提高组] 火柴棒等式
  • OpenHarmony 实战开发——ArkUI中的线程和看门狗机制
  • Linux tty模式下无法使用回滚功能解决(shift+pgup方法不管用)
  • STL中queue、stack的实现与容器适配器的讲解
  • C++入门篇1
  • 【前端面试】React深度学习(下)
  • 【软件测试】自动化测试如此盛行,手工测试该何去何从?
  • Shell脚本入门:多命令处理
  • wpf prism 《3》 弹窗 IOC
  • RabbitMQ练习(Publish/Subscribe)
  • GPT-SoVITS-WebUI 初体验
  • C++练习题:进阶算法——动态规划
  • 面试题集锦:数据库
  • 米壳AI:做塞尔维亚跨境电商,用这个工具翻译产品主图,语言不再是难题!
  • KEYSIGHT是德 Infiniium EXR系列 示波器
  • LavaDome:一款基于ShadowDOM的DOM树安全隔离与封装工具
  • 大语言模型中,role为user、assistant、system有什么区别
  • 我主编的电子技术实验手册(18)——认识电感
  • 【数学建模】国赛论文写作教学——问题重述与分析
  • HTML实现俄罗斯方块
  • Spire.PDF for .NET【文档操作】演示:创建标记的 PDF 文档
  • 3.服务注册_服务发现
  • 低代码技术:简化应用开发,推动数字化转型
  • 树莓派4B安装golang最新版(20210520)
  • 代理IP设置白名单:让你的网络更安全高效
  • 今日算法:蓝桥杯基础题之“切面条”