首页 文章

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

提问于
浏览
7

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

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

我该怎么办呢?

2 回答

  • 1
    • 寻找具有相关facebook / google用户ID的用户 .

    • 如果该用户不存在,您需要一个电子邮件地址并尝试将其与现有的旧帐户相匹配 .

    • 如果您因任何原因没有收到电子邮件地址(例如,不接受授权请求),您可以显示一个弹出框,询问电子邮件地址,说明您需要它的原因 .

    • 然后,您找到旧用户并合并它,添加facebook / google ID以便将来查找 .

    • 如果找不到电子邮件地址的用户,则拒绝用户或创建新帐户 .

    您应该能够通过实施自己的 AuthenticationProvider 来完成所有这些工作

  • 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/

相关问题