实际上,我正在做一个需要做同样事情的项目。我为网站实现了Spring Security和Spring Social,还需要允许iOS和安卓应用程序通过社交网站连接。
下面是你需要做的:
- 将特定于设备的app实现到应用程序项目的开发中。因此,实现Facebook、twitter或其他任何你通常会在设备上实现的东西。您将执行实际的身份验证过程there.
- Implement,这是一个特殊的URL,供您的应用程序通过社交服务登录。例如,http://yousiteapi.com/services/auth/socialSignin。您将需要将通常写入UserConnection表实现的所有参数传递给此接口- providerId、userProviderId、authenticationToken、secret等。如果提供者不使用这些参数中的任何一个,只需在此控制器中传递null或空的var.
- ,您将需要引用spring SignInAdapter和ConnectionSignUp类的实现以及ConnectionRepository和UserConnectionRepository的实现,并基本上重现整个注册过程。首先,您需要通过传递回的providerId确定它是哪个提供程序,并使用提供程序的consumerKey和consumerSecret来实现您需要的特定ConnectionFactory。然后,使用传入的数据创建ConnectionData对象。使用ConnectionData对象,您可以创建实际的Connection对象。现在,您可以在
- 中复制正常Spring Social登录的逻辑:首先,使用您对UserConnectionRepository的引用并调用findUserIdsWithConnection()方法来查看用户以前是否已经登录过。如果没有,请调用ConnectionSignUp.execute()方法来创建user.
- Finally,,您只需调用SignInAdapter.signin()方法就可以让用户登录。不要忘记将您的响应设置为OK,这样您的应用程序就会知道这是成功的。
哇,听起来好像很多。实际上听起来比实际情况要多。希望这篇文章至少能帮你指明正确的方向。