-
IM 即时通讯系统 SSO 系列-09-用户密码的完整生命周期
邮箱验证
我们接下来的重点如何管理用户的密码?
如何保证安全、同时实现忘记密码、修改密码等常用的操作。
整体流程
我们针对密码的创建、修改、忘记密码、验证密码等流程,进行实现。
建表语句
-- 创建用户密码表
CREATE TABLE user_password (
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
...
2024-11-02 13:01:55 |
IM
-
IM 即时通讯系统 SSO 系列-08-用户激活邮箱验证
邮箱验证
我们接下来的重点就是结合邮箱,实现一个验证方式。
当然验证的方式可以有多种,目前比较推荐的还是邮箱验证。
整体流程
1)发送验证码到用户邮箱
2)用户点击后进行验证校验+处理,通过后更新对应的状态。
核心实现
建表语句
drop table if exists user_email_verify;
CREATE TABLE user_email_verify (
...
2024-11-02 13:01:55 |
IM
-
IM 即时通讯系统 SSO 系列-07-真实用户生命周期
生命周期
真实用户的生命周期包括入职同步、激活、正常使用、调岗处理、离职回收等步骤。
可能的流程如下:
入职同步(从HR系统同步)
创建用户账号
分配至小组
发送激活邮件
用户激活账号
正常使用
调岗处理(更新部门/小组)
离职标记...
2024-11-02 13:01:55 |
IM
-
IM 即时通讯系统 SSO 系列-06-multi Tenancy 多租户
chat
什么是多租户?
多租户(Multi - Tenancy)是一种软件架构设计模式,它允许一个软件实例同时为多个不同的客户(租户)提供服务。
每个租户就像是拥有自己独立的软件副本,彼此之间的数据和配置相互隔离,但实际上他们共享同一个软件实例和底层基础设施。
以下是关于多租户的详细介绍:
核心概念
租户隔离:租户之间的数据和业务逻辑相互隔离,一个租户的数据不能被其他租户访...
2024-11-02 13:01:55 |
IM
-
IM 即时通讯系统 SSO 系列-05-swagger 文档整合
swagger 文档接入
将项目与 swagger 进行整合,所有 controller 和 dto 添加对应的注解,为了解耦,入参使用 dto,复制后调用底层实体。
整体流程
pom.xml
引入依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springf...
2024-11-02 13:01:55 |
IM
-
IM 即时通讯系统 SSO 系列-03-基于 mybatis 实现 CRUD
实现基本的 crud
pom.xml
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version&g...
2024-11-02 13:01:55 |
IM
-
IM 即时通讯系统 SSO 系列-03-初始化建表语句
基础的表设计
设计一下用户生命周期管理,一个普通用户,固定在一个小组内,小组固定在一个部门内,部门固定在一个公司内。
用户还区分为普通真实用户、系统虚拟用户,首先给出这部分的 mysql 表设计,包括数据库建表语句等
create database sso;
use sso;
-- 组织架构管理系统数据库表结构
-- 公司表
CREATE TABLE company (
i...
2024-11-02 13:01:55 |
IM
-
IM 即时通讯系统 SSO 系列-01-整体概览
IM 开源系列
我们先从实现一个简单的公司内部使用的 IM 工具开始。
首先需要一个基础的能力。
SSO 组织关系。
循序渐进
我们可以先不考虑 HR 系统,先从页面的操作开始实现,做一个 MVP 版本。
后续的文章中我们会先从最基本的用户、小组、部门、公司从下向上而实现。
chat
哪些特性?
chat: 我想实现一个公司内部的 sso 维护系统,你觉得应该有哪些核心能力...
2024-11-02 13:01:55 |
IM