我是如何编写一个单点登录系统的
本文将从“后端逻辑”及”前端“两个层面介绍我是如何设计一个单点登录系统的。
除有特殊说明外,本文所描述的所有逻辑均在单点登录系统中(后端、前端授权页)实现,请不要混淆将其用于第三方应用程序中。
序
对于单点登录系统,目前有很多商业公司都提供成熟的解决方案,如国外的 Okta、Auth0、Duo 和国内公司的 Authing,这些商业化的解决方案都非常成熟,适合有足够预算和对安全性、可用性高的企业使用。
单点登录不仅仅可以用于企业内部对员工身份的鉴权(B2E),也可以用于对客户身份的鉴权(B2C)
我第一次尝试设计单点登录系统是在 2020年年末,当时我第一次有了身份认证的需求,我所设计的第一版单点登录系统后端是基于 Python Flask 的,前端非常简陋,仅仅有一些基本功能: