我正在开发一个集成了 Facebook 登录的移动应用程序(使用 fb android sdk)。我还有一台服务器,上面有一些我想保护的休息端点。几天来我一直在寻找最佳解决方案(阅读开发网站上的文章:https://developers.facebook.com/docs/facebook-login/security,其他 stackoverflow 帖子)但我不太确定什么是最佳解决方案。
目前我有以下设置:
- 用户使用 Facebook(移动 android SDK)登录应用。
- 当从 rest 端点请求资源时, token 将作为 header 添加。
- 在服务器端,我使用 fb debug_token 端点 (https://developers.facebook.com/docs/graph-api/reference/v2.5/debug_token) 验证 token
- 如果验证成功,我允许“调用”我的剩余资源
如您所见,我将针对收到的每个请求向 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/