一个 gin-goinc/gin 练手项目, 提供用户管理(user-management-subsystem) 如注册/认证/鉴权/授权
就是一个 go 练手项目, 同时, 也计划用于 goim 项目的辅助扩展, 使用 goim 的用户管理
- 手上有类似用户管理项目在进行重构
- 受到 talkgo/night#348 相关讨论启发
- 本项目, 申请为 https://github.com/developer-learning/reading-go 练手项目
项目组织参考 https://github.com/golang-standards/project-layout
代码使用 golang 1.12+ 并以 go module 进行管理
如下
- 用户管理
- 提供用户管理抽象接口 interface
- 用户注册
- 用户登录与认证
- 用户授权与鉴权
- 用户会话管理, 包括会话生命周期管理
- 用户会话存储, 提供抽象接口interface , 如支持内存/文件/redis
- 用户管理, 主要是用户创建/查询(条件查询)/屏蔽(拒绝登录,但不删除)/重激活
- 支持用户生命周期管理
- 试用期
- 会员期期限
- VIP会员期限
- 支持用户 profile 字段扩展/自定义
- 支持用户与业务关系绑定
- 支持 goim 鉴权
- 支持 goim 房间号绑定(授权) /房间切换 /多房间并活
- 提供用户活动日志记录
- 接口
- 提供 web RESTful 客户端( JSON) API
- 提供 web page 客户端( web form )
- 提供命令行客户端
- 提供 tcp 客户端接口
- 提供 gRPC 接口
- SDK
- android SDK( java )
- nodeJS SDK
- python SDK
- 第三方集成
- 支持 OAuth 2.0
- 存储与缓存
- 提供抽象接存储接口 interface
- 提供文件存储
- 提供数据库存储 ( postgres / mysql / mongoDB...)
- 部署与维护
- 独立单实例部署
- 支持 HA 双活
- 支持限流
- 支持 fail-over
- 分布式部署
- 支持 HA 双活
- 支持负载均衡
- 独立单实例部署
待续.....
- 截止2019/05/16, 完成用户数据模型设计, 数据流转设计并文档化
- 截止2019/05/23, 完成原型设计并测试通过
- 在本项目 issues 中交流讨论, 尤其欢迎有心得有经验的朋友指点
- fork 本项目, 提交代码/文档/patch 修订, 注意: 代码提交前, 请尽量在 issues 中进行修订/扩展的业务场景/技术/问题进行充分讨论
- 为本项目撰写关联技术文章, 翻译文档
所有贡献者, 将在贡献者同意情况下, 列示于本项目中(不限于个人简介/技术博客/文章连接....)
本项目遵从 MIT 授权方式
- 项目发起人 tsingson 三明智 写于**深圳 小罗号口琴音乐中心, 技术博客https://tsingson.github.io/ 2019/05/09