繁体   English   中英

Android facebook登录Spring Social webapp

[英]Android facebook signin for Spring Social webapp

我目前正在使用Spring Social和Spring Security开发一个Web应用程序。 在Web应用程序中,特定用户可以使用ProviderSignInController在Facebook上登录。 当工作人员成功通过FB进行身份验证时,他们也会以编程方式登录我的Spring Security本地Web应用程序。 这个概念改编自春季社交展示 Spring Social然后允许经过身份验证的用户创建事件,这些事件也是在Facebook页面上创建的。

现在我想写一个Android应用程序,它允许用户发布到我的留言簿,并通过我的Web应用程序查看/创建事件。 我现在的问题是如何从我的andoid应用程序中实现登录。 在我的Web应用程序中, UsersConnectionRepository将facebook帐户映射到本地帐户。 我可以简单地重用这些数据并从我的Android应用程序中以与从Web应用程序完全相同的方式登录吗? ProviderSignInControllerhttp://_webapp_/signin/facebook添加路径映射,重定向到facebook登录页面。 这可以简单地在Android上使用WebView完成吗?

看着spring-android-facebook-client我很困惑。 此示例似乎手动管理OAuth身份验证。 但我还没想到,当后台中没有其他已经管理认证的Web应用程序时,这是实现它的方式还是另一种可能性。

欢迎任何反馈。 谢谢。

Jeyp

现在我想写一个Android应用程序,它允许用户发布到我的留言簿,并通过我的Web应用程序查看/创建事件。

Android客户端需要一种方法来登录您的Web应用程序,以便发布到安全的RESTful端点,OAuth是一种很好的方法。 Spring Security OAuth是Spring Security的扩展,可以允许第三方移动或Web客户端与您的网站进行交互。

配置OAuth服务器后,您可以在Android客户端中使用Spring Social创建自定义提供程序,以建立与您的网站的OAuth连接。 在这种情况下,您的用户将使用其本地凭据对您的网站进行身份验证。 连接后,您的Android应用程序可以再次使用您的自定义Spring Social API绑定将事件发布到您网站中的RESTful端点。

在这种情况下,您的用户不会从Android应用程序向Facebook进行身份验证。 这假设他们已经在您的网站上建立了帐户和Facebook连接。 事实上,这就是SpringSource Greenhouse参考应用程序的工作原理。

这将我们带回到您问题的前一部分:

当工作人员成功通过FB进行身份验证时,他们也会以编程方式登录我的Spring Security本地Web应用程序。

如果我理解正确,您要求授权您的Android客户端使用Facebook凭据访问您的第三方网站。 虽然这当然是可能的,但目前尚未通过Spring Social和Spring for Android支持。

另一种选择是考虑您的网站的移动版本。 这样,Android和其他移动设备就可以使用他们的Facebook凭据简单地从普通浏览器登录到您的网站。 用户界面更适合移动设备,它可以消除额外OAuth服务器/客户端配置的额外复杂性。

最后,要解决问题的最后部分。 这与前面的部分实际上是一个单独的问题:

此示例似乎手动管理OAuth身份验证。

主要问题是Spring Social尚不支持资源所有者凭证授权(ROCG)。 添加此功能将简化在Android上获取Facebook访问令牌的过程,因为您不必处理浏览器重定向。 有关更多信息,请参阅此Spring社会问题

由于缺乏ROCG,Spring for Android示例应用程序演示了一种使用Spring Social获取访问令牌的方法。 在这种情况下,它是客户端身份验证流程的修改版本。 作为参考,Facebook有一个有用的页面,描述了所有可用的身份验证方法 成功验证后,webview会重定向到网址,此时应用可以从此网址中检索访问令牌。

SpringSource正在讨论如何在未来版本中简化身份验证并改进Spring Social和Spring for Android之间的这一部分集成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM