layout | title | tags |
---|---|---|
post |
云原生用户认证和管理系统 |
Go |
当你要开发一款应用,关于用户认证和管理的功能是绕不开的,但是在初期你肯定也不想投入太多的精力在这方面,毕竟还有很多产品的迭代需要投入精力。但是用户认证和管理往往又是系统的核心基础设施,这就很矛盾了,你又不想投入精力,同时后续可能会因为用户规模的增长,用户系统可能会成为系统的瓶颈。
今天要推荐的系统,就是来解决这方面的问题。Kratos ,一款面向云原生、以 API 支持为第一优先设计的用户认证和管理系统。从软件架构设计的思想上就考虑了如下四个问题:
- Minimal dependencies 最小化依赖
- Runs everywhere 可以在任何系统上运行,包括 ARM, AMD64, i386 等
- Scales without effort 弹性可伸缩
- Minimize room for human and network errors 最小化用户和网络错误
一般的网站都提供如下关于用户的基础功能:
- Login 登陆
- Logout 登出
- Registration 注册
- Profile management ("update first name", "update avatar ...") 用户详细管理
- Credentials Management ("add a new recovery email", "change password", "...") 密钥管理
- Account Recovery ("password reset") 账户恢复
- Two Factor Authentication with Google Authenticator 双因素认证
- "Sign in with Google" and "Sign in with GitHub" 第三方登陆
毫无疑问,以上功能项目 Kratos 都提供。Kratos 虽然是使用 Go 开发的,但是它同时提供 Node 的 SDK,可以非常方便的集成。比如如下就是用户认证的使用例子,是不是非常简单。
项目提供了简单的适配页面,比较简洁,当然你可以根据自己需要自己定制 UI。
目前 Kratos 项目已经有比较多公司在赞助,比如 Raspberry PI Foundation、ThoughtWorks、Tulip 等。更多项目详情请查看如下链接。