【问题标题】:Integrate app with spring social website将应用程序与春季社交网站集成
【发布时间】:2013-03-13 20:17:39
【问题描述】:

我目前有一个使用 Spring MVC 和 Spring Social 设置的网站,因此用户可以使用 Facebook 和 Twitter 登录。

现在我想授权我的 Android 客户端使用 Facebook(或 Twitter)凭据访问我的第三方网站。 As stated here,这应该是可能的。但他没有继续说如何。谁能帮我解决这个问题?请给我一些关于如何做到这一点的基本大纲。我真的被困在这里了......

【问题讨论】:

    标签: java android spring spring-social


    【解决方案1】:

    我实际上正在做一个需要做同样事情的项目。我为网站实现了 Spring Security 和 Spring Social,还需要允许 iOS 和 Android 应用程序通过社交网站进行连接。

    这是您需要做的:

    1. 将特定于设备的 API 实施到应用项目的开发中。因此,在设备上实现 Facebook、Twitter 或其他任何您通常会做的事情。您将在那里进行实际的身份验证过程。

    2. 为您的应用实施一个特殊 URL,以通过社交服务登录。例如,http://yousiteapi.com/services/auth/socialSignin。您需要将所有参数传递给此 api,这些参数通常会写入 UserConnection 表实现 - providerId、userProviderId、authenticationToken、secret 等。如果提供者不使用其中之一,只需传入 null或一个空变量。

    3. 在此控制器中,您将需要参考您的 spring Social SignInAdapter 和 ConnectionSignUp 类的实现以及 ConnectionRepository 和 UserConnectionRepository 的实现,并基本上重现整个注册过程。首先,您需要通过您传回的 providerId 确定它是哪个提供者,并使用提供者的 consumerKey 和 consumerSecret 来实现您需要的特定 ConnectionFactory。然后,使用您传入的数据创建 ConnectionData 对象。使用 ConnectionData 对象,您可以创建实际的 Connection 对象。

    4. 1234563 ConnectionSignUp.execute() 方法来创建用户。
    5. 最后,您只需调用 SignInAdapter.signin() 方法让用户登录。不要忘记将您的响应设置为 OK,以便您的应用知道这是成功的。

    哇,听起来很多。实际上听起来比它更多。希望这至少有助于为您指明正确的方向。

    【讨论】:

    • 如果我写html5移动应用程序(jquery + phonegap等)我会怎么做?
    • @SBerg413 我可以使用 REST 库并进行通常的 facebook 登录,获取访问令牌并发出登录请求,其工作方式与用户从其客户端代码(浏览器、javascript)调用时完全相同跨度>
    • 这是一个很好的方法,当然帮助我开始 - 尽管第 2 步存在安全风险,因为您的控制器只是从应用程序接受这些详细信息 - 如果没有,可以添加随机令牌验证完成服务器端。更好的是,如果移动应用程序只是将令牌发送到 Spring Social 服务器并让它调用 API 来构建连接。我会尽快写一篇博文,并为未来的人更新此评论。
    • 到目前为止看起来很有希望。我会尝试一下并分享我的经验。非常感谢@SBerg413
    猜你喜欢
    • 2011-12-25
    • 2013-12-04
    • 1970-01-01
    • 2015-01-07
    • 2016-05-04
    • 1970-01-01
    • 2014-09-21
    • 2012-05-07
    • 1970-01-01
    相关资源
    最近更新 更多