android - Facebook 移动登录和服务器端验证

标签 android facebook rest security facebook-graph-api

我正在开发一个集成了 Facebook 登录的移动应用程序(使用 fb android sdk)。我还有一台服务器,上面有一些我想保护的休息端点。几天来我一直在寻找最佳解决方案(阅读开发网站上的文章:https://developers.facebook.com/docs/facebook-login/security,其他 stackoverflow 帖子)但我不太确定什么是最佳解决方案。

目前我有以下设置:

  1. 用户使用 Facebook(移动 android SDK)登录应用。
  2. 当从 rest 端点请求资源时, token 将作为 header 添加。
  3. 在服务器端,我使用 fb debug_token 端点 (https://developers.facebook.com/docs/graph-api/reference/v2.5/debug_token) 验证 token
  4. 如果验证成功,我允许“调用”我的剩余资源

如您所见,我将针对收到的每个请求向 Facebook(服务器端)发出自己的请求。有没有更好的方法来解决这个问题?

提前致谢!

最佳答案

Facebook 使用 OAuth,使用此协议(protocol),您应该在响应 header 或正文中包含与 token 关联的到期时间属性。

因此,您可以将元组 (token, token_expiry) 存储在大多数情况下绕过对 facebook 的请求的任何位置。

事实上,您应该得到具有这些属性的响应:

{
"access_token": <access-token>,
 "token_type":<type>,
 "expires_in":<seconds-til-expiration>
}

关于android - Facebook 移动登录和服务器端验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33024070/

相关文章:

android - 来自多个 Activity 的 Facebook 墙贴

java - 如何修复 ViewPager 以防止应用程序出错和崩溃?

facebook 应用程序,发布给用户并通知他

java - Jersy/Jetty 服务器未找到 MessageBodyWriter 错误

java - @DateTimeFormat(pattern ="yyyy-MM-dd") 使用 Spring Mvc Rest Service 给出 "error 400 request syntactically incorrect"

java - Spring Controller 组合而不是继承

android - 如何从 Main(ActionBarActivity) intent Activity 获取 ActionBar

android - 如何轻松地将大量字符串资源(如国家列表)添加到android? (也适用于任何其他网络/移动语言)

javascript - 你能用 Javascript 更新 meta 和 Open Graph 标签吗?

java - 如何使用 java 查询 Facebook 事件