我已经使用 AngularJS 前端实现了 Spring Boot 应用程序。还设置了用户及其权限。现在我可以使用这些用户中的任何一个登录,并且与 Spring 安全性配合良好。我想将这种传统的登录流程转变为 Facebook/Google OAuth 登录流程,其中我希望用户使用他们的 Facebook/Google 帐户登录,并且他们将自动映射到其内部用户。这将帮助我摆脱维护这些用户的密码。
我发现很多文章讨论使用 Spring Boot 设置 OAuth 以及 Facebook/Google 登录如何与 Spring Boot 应用程序集成。但我很难找到一篇讨论将 Facebook/Google 用户与内部用户联系起来的文章。
我该怎么办?
请您参考如下方法:
- 查找具有关联 facebook/google 用户 ID 的用户。
- 如果该用户不存在,您会请求提供电子邮件地址并尝试将其与现有的旧帐户进行匹配。
- 如果您因任何原因没有收到电子邮件地址(例如不接受授权请求),您可以显示一个弹出框,要求您提供电子邮件地址,并解释您需要它的原因。
- 然后,您找到旧用户并将其合并,添加 facebook/google ID,以便将来查找。
- 如果未找到具有该电子邮件地址的用户,您可以拒绝该用户或创建一个新帐户。
您应该能够通过实现自己的AuthenticationProvider
来完成所有这些工作