Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android facebook登录Spring社交网络应用_Android_Facebook_Spring_Spring Social - Fatal编程技术网

Android facebook登录Spring社交网络应用

Android facebook登录Spring社交网络应用,android,facebook,spring,spring-social,Android,Facebook,Spring,Spring Social,我目前正在使用Spring Social和Spring Security开发一个web应用程序。在web应用程序中,特定用户可以使用ProviderSignInController登录Facebook。当工作人员成功通过FB身份验证时,他们也会通过程序登录到我的本地带有Spring Security的webapp。此概念改编自。SpringSocial允许经过身份验证的用户创建事件,这些事件也会在facebook页面上创建 现在我想写一个android应用程序,它允许用户通过我的web应用程序发

我目前正在使用Spring Social和Spring Security开发一个web应用程序。在web应用程序中,特定用户可以使用
ProviderSignInController
登录Facebook。当工作人员成功通过FB身份验证时,他们也会通过程序登录到我的本地带有Spring Security的webapp。此概念改编自。SpringSocial允许经过身份验证的用户创建事件,这些事件也会在facebook页面上创建

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

看着这张照片,我很困惑。此示例似乎手动管理OAuth身份验证。但我还没有弄清楚,这是一种可行的方法还是另一种实现它的可能性,因为在后台没有其他web应用程序管理身份验证

欢迎任何反馈。谢谢

杰普

现在,我想写一个android应用程序,让用户能够发布到我的 留言簿,并通过我的web应用程序查看/创建事件

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

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

在这种情况下,您的用户不会通过Android应用程序对Facebook进行身份验证。这假设他们已经在你的网站上建立了一个帐户并与Facebook建立了连接。事实上,SpringSource参考应用程序就是这样工作的

这让我们回到你问题的前一部分:

当工作人员成功通过FB身份验证时,他们也会通过程序登录到我的本地带有Spring Security的webapp

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

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

最后,回答你问题的最后一部分。这实际上是一个与前几部分不同的问题:

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

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

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


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

感谢您提供的详细答案!与此同时,我改变了我网站的行为:我现在使用
ConnectController
将facebook连接到本地用户帐户。作为我网站上的登录机制,我使用基于表单的登录。本地用户不再通过编程方式登录。目前,我正在考虑使用基本身份验证或基于表单的登录从我的android应用程序到我网站的RESTful访问点。使用我的网站创建自定义OAuth是这两种方法更安全的替代方法,这对吗?请记住,身份验证不同于授权。OAuth是一种授权方法。要建立OAuth连接,您仍然需要对用户进行身份验证。但是,使用OAuth,对于安全端点的任何请求,都不会将用户名和密码从客户端传递到服务器。此外,使用OAuth,您不在应用程序中存储用户的凭据,只存储访问令牌。无论您使用什么方法,您都应该使用SSL来加密客户端的web流量,因为您已经声明安全性很重要。您好,您找到让moble社交登录工作的方法了吗?