Android应用程序和Web服务+ facebook登录之间的身份验证

use*_*214 5 android facebook web-services

我的Android应用程序中唯一的登录选项是通过Facebook登录.我想使用Web服务(ASMX),并且在每个请求上,服务器必须验证用户是否通过facebook进行了身份验证.我找到了解决方案:

1)从Android应用程序验证用户到Facebook

2)获取FB身份验证令牌到Android应用程序

3)将认证令牌和Facebook UID从Android转发到Web服务器

4)在Web服务器上,使用提交的令牌进行Facebook API调用.

如果来自Web服务器的Facebook API调用返回有效身份验证,并且用户ID等于Android应用程序提交的身份,则您的服务器可以信任该ID(并且您可以确定Android身份验证是真实的)

链接

我的问题是:

  1. 每次向Web服务发送请求时,是否必须发送facebook用户ID和令牌?或使用cookie(如果可能的话)
  2. 我是否必须将网络服务注册为Facebook应用程序?我发现了这个: C#Facebook SDK入门

Blu*_*ith 5

您的解决方案看起来不错。实际上,Android 客户端唯一需要传递给 Web 服务的是身份验证令牌。使用该身份验证令牌,您可以做任何事情,当然,授予用户权限。因此,Android 客户端必须向用户询问您的 Web 服务将使用的权限。

对于您的 2 个问题:

  1. 不可以。您应该只发送一次 FB 身份验证令牌。在 Web 服务器可以从 FB 检索用户信息后,您可以将这些信息保存到 DB(在一个简单的 User 模型中),然后使用您自己的身份验证引擎(cookies、API 令牌等)创建会话

  2. 不需要。您不需要将 Web 服务注册为 FB 应用程序。正如我上面提到的,使用 FB 身份验证令牌,您可以做很多事情。您还可以查看Facebook Graph API