我正在尝试将spring social用于我的REST服务和我的移动应用程序 .
我想知道最好的方法是什么 .
我打算在我的 mobile app 中使用 linkedin ,google登录和密码验证 . 此社交登录应为 connected to users in my database .
我的spring应用程序将充当API,应使用JWT令牌进行保护 . 之后移动应用程序将使用此JWT令牌来使用API .
在我的手机上,我希望能够通过linkedin,Facebook或密码注册/登录 .
据我所知,移动需要不同于https://spring.io/guides/tutorials/spring-boot-oauth2/中描述的oauth流量
好像它需要"Proof Key for Code Exchange"流程如下所述:https://auth0.com/docs/api-auth/grant/authorization-code-pkce
它是否正确?我没有找到任何信息如何最好地与 Spring 季社交这样做,如果 Spring 天社会支持这个用例 .
有人能指出我正确的方向吗?我刚刚找到了有关如何使用单页应用程序而不是移动应用程序执行此操作的信息 . 非常感谢提前!
1 回答
一种可能的方式是
移动应用使用LinkedIn或Google的SDK执行SSO以检索authN令牌 .
移动应用程序将其传递给后端服务,后端服务使用它从oauth服务检索用户详细信息(例如电子邮件) .
后端服务可以执行有关用户详细信息的其他工作(例如,与现有用户的链接) .
后端服务将JWT令牌返回给移动应用程序,该移动应用程序结束SSO .
SSO应该能够返回一个电子邮件地址供您链接用户 . 有时您需要明确申请许可(Facebook要求) .
这种方法的关键在于它避免在后端服务中完全使用OAuth2库,因为现在使用SSO提供程序的SDK在移动应用程序中处理它 .
流程总结如下图:
========编辑:
我们使用这种方法使用一个移动应用程序进行Facebook SSO,并且它运行良好 . 移动应用程序在iOS中,后端服务是Spring Boot .
讨论受到欢迎 .