移动注册春季社交

时间:2017-05-02 08:57:01

标签: spring spring-mvc spring-boot spring-security spring-social

我正在尝试将spring social用于我的REST服务和我的移动应用程序。

我想知道最好的方法是什么。

我打算在移动应用中使用 linkedin ,谷歌登录和密码验证。此社交登录应连接到我的数据库中的用户

我的spring应用程序将充当API,应使用JWT令牌进行保护。之后移动应用程序将使用此JWT令牌来使用API​​。

在我的手机上,我希望能够通过linkedin,Facebook或密码注册/登录。

据我所知,移动需要的流量与https://spring.io/guides/tutorials/spring-boot-oauth2/

中描述的不同

似乎它需要“代码交换的证明密钥”流程,如下所述: https://auth0.com/docs/api-auth/grant/authorization-code-pkce

这是对的吗?我没有找到任何关于春季社交如何最好地做到这一点的信息,如果春天的社交支持这个用例。

有人能指出我正确的方向吗?我刚刚找到了有关如何使用单页应用程序而不是移动应用程序执行此操作的信息。非常感谢提前!

1 个答案:

答案 0 :(得分:4)

一种可能的方法是

  1. 移动应用使用LinkedIn或Google的SDK执行SSO以检索authN令牌。
  2. 移动应用程序将其传递给后端服务,后端服务使用它从oauth服务检索用户详细信息(例如电子邮件)。
  3. 后端服务可以对用户详细信息进行额外的工作(例如,与现有用户的链接)。
  4. 后端服务将JWT令牌返回给移动应用程序,该应用程序结束SSO。
  5. SSO应该能够返回一个电子邮件地址供您链接用户。有时您需要明确申请许可(Facebook要求)。

    这种方法的关键在于它避免在后端服务中完全使用OAuth2库,因为现在可以使用SSO提供程序的SDK在移动应用程序中处理它。

    流程总结如下图: Mobile SSO Flow

    ====== 编辑:

    我们使用这种方法通过一个移动应用程序进行Facebook SSO,并且效果非常好。移动应用程序在iOS中,后端服务是Spring Boot。

    欢迎讨论。