news 2026/5/10 7:10:40

即时通讯项目--UserService

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
即时通讯项目--UserService

功能设计

功能模块示意图

接口实现流程

1. 用户注册

  1. 从请求中取出昵称和密码;
  2. 检查昵称是否合法(仅包含字母、数字、连字符-、下划线_,长度限制 3~15 位);
  3. 检查密码是否合法(仅包含字母、数字,长度限制 6~15 位);
  4. 根据昵称查询数据库,判断昵称是否已存在;
  5. 向数据库新增用户数据;
  6. 向 ES 服务器新增用户信息;
  7. 组织响应,返回注册成功 / 失败结果。

2. 用户登录

  1. 从请求中取出昵称和密码;
  2. 通过昵称从数据库查询用户信息,校验密码是否一致;
  3. 检查 Redis 中的登录标记,判断用户是否已登录;
  4. 构造会话 ID,生成会话键值对,向 Redis 添加会话信息及登录标记;
  5. 组织响应,返回生成的会话 ID。

3. 获取短信验证码

  1. 从请求中取出手机号码;
  2. 验证手机号码格式(必须以 1 开头,第二位为 3~9,后接 9 位数字);
  3. 生成 4 位随机验证码;
  4. 调用短信平台 SDK 发送验证码;
  5. 构造验证码 ID,将 “验证码 ID - 验证码” 映射关系存入 Redis;
  6. 组织响应,返回生成的验证码 ID。

4. 手机号注册

  1. 从请求中取出手机号码和验证码;
  2. 校验手机号码格式是否合法;
  3. 从 Redis 中匹配验证码 ID 与验证码的一致性;
  4. 查询数据库,判断该手机号是否已注册;
  5. 向数据库新增用户信息;
  6. 向 ES 服务器新增用户信息;
  7. 组织响应,返回注册成功 / 失败结果。

5. 手机号登录

  1. 从请求中取出手机号码、验证码 ID 及验证码;
  2. 校验手机号码格式是否合法;
  3. 从 Redis 中匹配验证码 ID 与验证码的一致性;
  4. 根据手机号查询数据库,判断用户是否存在;
  5. 检查 Redis 中的登录标记,判断用户是否已登录;
  6. 构造会话 ID,生成会话键值对,向 Redis 添加会话信息及登录标记;
  7. 组织响应,返回生成的会话 ID。

6. 获取用户信息

  1. 从请求中取出用户 ID;
  2. 根据用户 ID 查询数据库,获取用户基础信息;
  3. 依据用户信息中的头像 ID,从文件服务器获取头像文件数据,组装完整用户信息;
  4. 组织响应,返回用户信息。

7. 设置头像

  1. 从请求中取出用户 ID 与头像数据;
  2. 根据用户 ID 查询数据库,判断用户是否存在;
  3. 将头像文件上传至文件子服务;
  4. 将文件子服务返回的头像文件 ID 更新至数据库;
  5. 更新 ES 服务器中的用户信息;
  6. 组织响应,返回更新成功 / 失败结果。

8. 设置昵称

  1. 从请求中取出用户 ID 与新昵称;
  2. 校验新昵称格式是否合法(仅包含字母、数字、连字符-、下划线_,长度 3~15 位);
  3. 根据用户 ID 查询数据库,判断用户是否存在;
  4. 将新昵称更新至数据库;
  5. 更新 ES 服务器中的用户信息;
  6. 组织响应,返回更新成功 / 失败结果。

9. 设置签名

  1. 从请求中取出用户 ID 与新签名;
  2. 根据用户 ID 查询数据库,判断用户是否存在;
  3. 将新签名更新至数据库;
  4. 更新 ES 服务器中的用户信息;
  5. 组织响应,返回更新成功 / 失败结果。

10. 设置绑定手机号

  1. 从请求中取出新手机号码、验证码 ID 及验证码;
  2. 校验新手机号码格式是否合法;
  3. 从 Redis 中匹配验证码 ID 与验证码的一致性;
  4. 根据用户 ID 查询数据库,判断用户是否存在;
  5. 将新手机号更新至数据库;
  6. 更新 ES 服务器中的用户信息;
  7. 组织响应,返回更新成功 / 失败结果。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 10:57:27

【计算机毕设】基于改进高斯混合模型的图割算法

💟博主:程序员小俊:CSDN作者、博客专家、全栈领域优质创作者 💟专注于计算机毕业设计,大数据、深度学习、Java、小程序、python、安卓等技术领域 📲文章末尾获取源码数据库 🌈还有大家在毕设选题…

作者头像 李华
网站建设 2026/5/9 4:31:19

收藏必备:RAG应用问答对构建实战:从文档到客服机器人的高效路径

文章讲述RAG知识库冷启动阶段的问答对构建方法,针对用户提问与文档内容间的鸿沟,提出从各类资料中抽取FAQ并补充相似问法。详细介绍了文档分段策略、提示词设计、人工复核等关键环节,以及图片处理的两条路线。强调以用户问题为中心&#xff0…

作者头像 李华
网站建设 2026/5/3 12:12:40

在Windows的WSL中试用GizmoSQL UI连接GizmoSQL数据库服务器

前文介绍了连接GizmoSQL数据库服务器的几种方法,其中最简单的就是用客户端二进制文件,但是这个客户端有诸多限制不太好用,所幸,GizmoData还给出了GizmoSQL UI组件,用它可以用web页面笔记本方式访问。 试用步骤 下载G…

作者头像 李华
网站建设 2026/5/8 15:38:30

加载了cpolar的Reader 电子书管理工具远程使用体验

Reader 是一款跨平台的开源电子书管理工具,核心功能包含自动分类整理电子书文件、多设备阅读进度同步、封面识别与精准内容搜索,还能适配 txt、epub、pdf 等多种书籍格式,可与极空间私有云结合存储电子书资源,让分散的电子书文件形…

作者头像 李华