我知道设计是主观的。但我想知道这是否是个好主意?
假设我在应用程序中实现了OpenID connect。我支持通过多个平台登录。但是现在,假设我需要维护我的用户数据库以授权我的服务器上的资源;或者让我们说我需要存储用户首选项。
维护用户的表并在用户每次使用 OpenID 登录或使用我的注册/登录 API 时将数据推送到其中,使用用户的电子邮件 ID 作为 OpenID 提供的主键(因为这不会改变(是一个好主意吗?
将两者结合起来的好方法有哪些?这样做有什么优点和缺点? 支持授权(我的服务器上的资源(以及使用 OpenID/oAuth 进行身份验证的最佳方法是什么?
这是一个非常好的问题,在很多地方都没有很好地涵盖。
跟踪用户
就通过多个平台登录而言,常见的模式是对所有类型的登录使用相同的授权服务器,并"联合"到不同的身份提供程序,具有以下好处:
- UI 和 API 中的代码更简单
- 每个用户只有一个用户 ID,无论登录方法如何
用户数据
如前所述,在业务应用程序的现实世界中,您通常需要通过 2 个用户数据源管理用户并授权请求。我的几篇文章可能会提供一些有用的技巧:
- 用户数据管理
- 授权设计