我目前有一个使用Spring MVC和Spring Social建立的网站,因此用户可以使用Facebook和Twitter登录.
现在我想授权我的Android客户端使用Facebook(或Twitter)凭据访问我的第三方网站. As stated here,这应该是可能的.但他并没有继续说出如何.任何人都可以让我在路上吗?请给我一些如何做到这一点的基本概述.我真的被困在这里……
这是你需要做的:
>将特定于设备的API实施到应用程序项目的开发中.因此,实现Facebook,Twitter或其他任何设备上的通常情况.您将在那里进行实际的身份验证过程.
>为您的应用实施特殊网址,以便通过社交服务登录.例如,http://yousiteapi.com/services/auth/socialSignin.您将需要将所有参数传递给此api,这通常会写入UserConnection表实现 – providerId,userProviderId,authenticationToken,secret等.如果提供者不使用其中一个,只传入null或空var.
>在此控制器中,您将需要引用spring Social SignInAdapter和ConnectionSignUp类的实现以及ConnectionRepository和UserConnectionRepository的实现,并基本上重现整个注册过程.首先,您需要通过您传回的providerId确定它是哪个提供者,并使用提供者的consumerKey和consumerSecret来实现您需要的特定ConnectionFactory.然后,使用您传入的数据来创建ConnectionData对象.使用ConnectionData对象,可以创建实际的Connection对象.
>现在,您可以复制普通Spring Social登录的逻辑:首先,使用您对UserConnectionRepository的引用并调用findUserIdsWithConnection()方法以查看用户是否先前已登录.如果不是,请调用ConnectionSignUp.execute()创建用户的方法.
>最后,您只需调用SignInAdapter.signin()方法对用户进行签名.不要忘记将响应设置为OK,以便您的应用知道这是成功的.
哇,这听起来很多.实际上听起来比它更多.希望这至少有助于指出你正确的方向.