我已经使用AngularJS前端实现了一个Spring Boot应用程序 . 还设置了用户及其权限 . 现在,我可以使用这些用户登录,并且可以很好地使用Spring安全性 . 我想将此传统登录流程转换为Facebook / Google OAuth登录流程,我希望用户使用其Facebook / Google帐户登录,并自动将其映射到其内部用户 . 这将帮助我摆脱维护这些用户的密码 .
我发现很多文章都在讨论如何使用Spring Boot设置OAuth,以及如何将Facebook / Google登录与Spring Boot应用程序集成 . 但我很难找到一篇文章谈论将Facebook / Google用户与内部用户联系起来 .
我该怎么办呢?
2 回答
寻找具有相关facebook / google用户ID的用户 .
如果该用户不存在,您需要一个电子邮件地址并尝试将其与现有的旧帐户相匹配 .
如果您因任何原因没有收到电子邮件地址(例如,不接受授权请求),您可以显示一个弹出框,询问电子邮件地址,说明您需要它的原因 .
然后,您找到旧用户并合并它,添加facebook / google ID以便将来查找 .
如果找不到电子邮件地址的用户,则拒绝用户或创建新帐户 .
您应该能够通过实施自己的
AuthenticationProvider
来完成所有这些工作在从Facebook获取用户数据之前,必须通过设置
spring.social.facebook.appId
和spring.social.facebook.appSecret
属性来指定应用程序的ID和密码 . 您可以通过Spring Boot支持的任何方式设置它们,包括将它们设置在application.properties
文件中:作为参考,您可以按照这篇文章:https://spring.io/guides/gs/accessing-facebook/