# 《分布式IM系统》大后端平台-用户服务-第03节:用户微服务常规功能的设计与实现

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
课程视频:https://t.zsxq.com/17yKebhrV (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本节难度:★★☆☆☆
  • 本节重点:思考分布式IM即时通讯系统关于用户业务的流程,结合用户微服务梳理用户相关的功能点,设计和实现用户微服务的常规功能,掌握后端常规功能的设计和实现,并能够将其灵活应用到自身实际项目中。
  • 课程视频:https://t.zsxq.com/17yKebhrV (opens new window)

大家好,我是冰河~~

在分布式IM即时通讯系统中,关于用户相关的功能并不多,大部分都是一些常规的CRUD操作。但是,对于用户微服务的常规功能来说,我们不仅仅要局限于CRUD,更重要的是,要思考这些功能背后的实现逻辑和落地方案。

# 一、前言

在前面的章节中,我们在用户微服务中实现了用户登录授权认证与刷新Token的机制,完成了用户授权认证的流程设计和实现。对于用户微服务来说,总体的功能并不多,也比较简单,大部分都是常规的业务逻辑功能,可以进行统一设计和实现。

# 二、本节诉求

对用户微服务的常规功能进行设计和实现,掌握常规功能的接口设计,掌握后端常规功能的设计和实现,并能够将其灵活应用到自身实际项目中。

# 三、功能梳理

前面说过,在整个分布式IM即时通讯系统中,用户微服务的功能并不多,也比较简单,关键是要梳理出用户微服务到底应该存在哪些功能,才能满足分布式IM即时通讯系统对用户功能的需求。

在前面的章节中,已经完成了用户注册、用户登录和刷新Token的功能设计与开发,并提供了相应的接口。也就是说,最基本的注册、登录和刷新Token的接口开发完成了。那接下来,还需要开发哪些功能呢?

对于常规功能来说,我们可以为用户新增一个修改密码的功能。另外,结合整个分布式IM即时通讯系统进行思考,用户可以查看并修改自己的信息,根据用户名搜索其他用户,查看其他用户的详情信息,在搜索其他用户时,需要展示这些用户在哪些终端在线等。所以,我们可以梳理出关于用户微服务中如图3-1所示的功能需求点。


每个功能点的说明如下所示。

  • 用户注册:用户可以在系统中注册自己的账号。
  • 用户登录:用户可以登录系统。
  • 刷新Token:当访问Token即将过期时,客户端可以调用刷新Token的接口,传递刷新Token来刷新访问Token。
  • 修改密码:用户可以在系统中修改密码。
  • 在线终端:搜索用户时,可以展示用户在哪些终端在线。
  • 根据名称查询用户列表:在系统中可以根据名称搜索用户列表,选择对应的用户,将其添加为自己的好友。
  • 修改用户信息:用户可以在系统中修改自己的信息。
  • 根据ID获取用户信息:用户可以在系统中查看其他用户的详情展示。
  • 查看自身信息:用户可以在系统中查看自己的详情信息。
  • 其他功能:用户微服务中的其他预留功能。

# 四、接口设计

通过对功能的梳理,我们可以大体梳理出用户微服务需要提供的接口如下所示。

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码