身份验证:服务器端的 Facebook 用户访问令牌验证?

Authentication : Facebook user access token validation on server side?

这里很多问题都在讨论服务器端Facebook access token的验证过程。我有点困惑怎么仍然安全?

我的客户端和服务器流程是:

  1. 用户 Continue with Facebook 在客户端使用 Mobile SDK
  2. Facebook returns User access token 到客户端。
  3. 服务器端点接收 user access token(通过 POST 方法)并使用 Graph API.
  4. 验证 access_token
  5. 如果是经过身份验证的用户return,响应中的JWT授权令牌
  6. 同时(一小时内),如果黑客发现 endpoint 并将新的 access_token 传递给被黑端点。

如果5th点被执行会怎样?破解 POST 参数很困难,但在反编译应用程序并查看 类 文件(至少对于 android apk)后可能是可行的。在这种情况下,服务器将无法识别伪造的请求,并且将始终 return JWT Authorization 令牌进行进一步的调用。

Facebook access_token 的有效期为 60 天。我是否需要在验证端点时提供额外的安全层以确保请求仅来自应用程序?

每当用户请求登录时,facebook user access_token 是否总是在变化?

任何形式的帮助都将不胜感激。谢谢

解决方案:

生成的access_token将永远属于一个App。要验证它通过 access_tokenapp_tokenin:

https://graph.facebook.com/debug_token?
access_token=ACCESS_TOKEN
&app_token=APP_TOKEN