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