Spring Boot OAuth2将内部用户与Facebook / Google登录链接起来

时间:2017-07-27 11:29:37

标签: spring-boot spring-security google-oauth spring-social spring-oauth2

我已经使用AngularJS前端实现了一个Spring Boot应用程序。还设置了用户及其权限。现在,我可以使用这些用户登录,并且可以很好地使用Spring安全性。我想将此传统登录流程转换为Facebook / Google OAuth登录流程,我希望用户使用其Facebook / Google帐户登录,并自动将其映射到其内部用户。这将帮助我摆脱维护这些用户的密码。

我发现很多文章都在讨论如何使用Spring Boot设置OAuth,以及如何将Facebook / Google登录与Spring Boot应用程序集成。但我很难找到一篇关于将Facebook / Google用户与内部用户联系起来的文章。

我应该怎么做?

2 个答案:

答案 0 :(得分:1)

  1. 查找具有相关facebook / google用户ID的用户。
  2. 如果该用户不存在,您需要一个电子邮件地址,并尝试将其与现有的旧帐户相匹配。
  3. 如果您因任何原因没有收到电子邮件地址(例如,不接受授权请求),您可以显示一个弹出框,询问电子邮件地址,说明您需要它的原因。
  4. 然后,您找到旧用户并合并它,添加facebook / google ID以便将来查找。
  5. 如果找不到电子邮件地址的用户,您可以拒绝该用户或创建新帐户。
  6. 您应该可以通过实施自己的AuthenticationProvider

    来完成所有这些工作

答案 1 :(得分:0)

在从Facebook获取用户数据之前,您必须通过设置spring.social.facebook.appIdspring.social.facebook.appSecret属性来指定应用程序的ID和密码。您可以通过Spring Boot支持的任何方式设置它们,包括将它们设置在application.properties文件中:

spring.social.facebook.appId=233668646673605
spring.social.facebook.appSecret=33b17e044ee6a4fa383f46ec6e28ea1d

供参考,您可以按照以下文章进行操作:https://spring.io/guides/gs/accessing-facebook/