云原生用户认证和管理系统

当你要开发一款应用,关于用户认证和管理的功能是绕不开的,但是在初期你肯定也不想投入太多的精力在这方面,毕竟还有很多产品的迭代需要投入精力。但是用户认证和管理往往又是系统的核心基础设施,这就很矛盾了,你又不想投入精力,同时后续可能会因为用户规模的增长,用户系统可能会成为系统的瓶颈。

今天要推荐的系统,就是来解决这方面的问题。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,可以非常方便的集成。比如如下就是用户认证的使用例子,是不是非常简单。

image-20200506005210514

项目提供了简单的适配页面,比较简洁,当然你可以根据自己需要自己定制 UI。

image-20200506005641623

目前 Kratos 项目已经有比较多公司在赞助,比如 Raspberry PI Foundation、ThoughtWorks、Tulip 等。更多项目详情请查看如下链接。

开源项目地址:https://github.com/ory/kratos


更多精彩请扫码关注如下公众号。

Written on May 6, 2020