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

时间:2013-02-04 11:20:52

标签: android facebook web-services

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

  

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

     

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

     

3)转发身份验证令牌& facebook UID从Android到网络服务器

     

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

     

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

     

Link

我的问题是:

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

1 个答案:

答案 0 :(得分:3)

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

对于你的2个问题:

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

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