我的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 认证真实)
我的问题是:
答案 0 :(得分:3)
您的解决方案看起来不错。实际上,Android客户端唯一需要传递给Web服务的是身份验证令牌。使用该身份验证令牌,您可以执行任何操作,当然也可以使用授予的权限。因此,Android客户端必须询问用户您的Web服务将使用的权限。
对于你的2个问题:
没有。您应该只发送一次FB身份验证令牌。在Web服务器可以从FB检索用户信息之后,您可以将这些信息保存到DB(在简单的用户模型中),然后使用您自己的身份验证引擎(cookie,API令牌等)创建会话
没有。您不需要将Web服务注册为FB应用程序。正如我上面提到的,使用FB身份验证令牌可以做很多事情。您还可以看到Facebook Graph API