Android Facebook登录并访问web服务器

Android Facebook登录并访问web服务器,android,web-services,facebook,login,Android,Web Services,Facebook,Login,我正在开发一个Android应用程序和一个网站(它也与Android客户端进行通信)。我想使用FB登录,但我看到的问题是: 客户端,使用FB登录,然后获取访问令牌 由于Web服务器需要知道客户端引用的是哪个帐户,因此客户端和Web服务器如何仅使用此access_代码进行通信。我还想在网站上实现FB登录 我想的一个方法是: 客户端登录: 1) 使用FB登录并获取访问令牌。 2) 使用access_令牌获取一些用户信息。 3) 将访问令牌和用户信息授予web服务器。 4) Web服务器还使用acce

我正在开发一个Android应用程序和一个网站(它也与Android客户端进行通信)。我想使用FB登录,但我看到的问题是:

客户端,使用FB登录,然后获取访问令牌

由于Web服务器需要知道客户端引用的是哪个帐户,因此客户端和Web服务器如何仅使用此access_代码进行通信。我还想在网站上实现FB登录

我想的一个方法是:

客户端登录: 1) 使用FB登录并获取访问令牌。 2) 使用access_令牌获取一些用户信息。 3) 将访问令牌和用户信息授予web服务器。 4) Web服务器还使用access_令牌执行相同的FB操作,并检索用户信息。 5) 验证用户信息是否匹配,并基于此确定用户帐户。 6) 为此链接在客户端和Web服务器之间建立另一个访问令牌

这是否会使它更有效,或者只是登录并检索用户电子邮件地址作为实际帐户,然后告诉Web服务器这就是要使用的帐户


或者有人以其他方式这样做了吗?

对于客户端/服务器之间的通信,您应该使用自己的客户端Id。
不要依赖facebook提供给你的访问令牌,因为它在几种情况下发生了变化。
获得电子邮件也不是一个完整的解决方案,因为用户可以决定不给你他们的邮件

一般来说,您需要在双方都实现Facebook Connect

1.连接到facebook
2.从用户处获取权限(请阅读此处的权限:)
3.将其注册为您的用户,并给他一个id(如果您愿意,您可以使用facebook uid)

当用户返回到您的站点/应用程序时,您需要再次登录他,获取他的uid并查询您的服务器以获取用户详细信息

access_令牌的一点是,您需要它来查询facebook的api。每次用户使用facebook登录到您的站点/手机时,您都可以从facebook获得该令牌,或者您可以请求该用户获得脱机访问权限,然后您将拥有相同的访问令牌,直到该用户在facebook等网站更改密码为止(请在文档中阅读更多信息)。

此方法允许您查询facebook api,尽管用户当前未登录到您的站点

斯蒂芬,你有没有想出一个安全的登录流程?我也面临同样的问题,你的步骤正是我要尝试的。想知道它是否成功。布雷迪,你做了什么:)你明白了吗?你们中的任何一个:斯蒂芬或@BradyEmerson我正在尝试做同样的事情,需要知道一个好方法。