是否可以解密Facebook的新OAuth 2.0 access_token?

我需要以某种方式从access_token获取user_id和app_id。

PS:

我只需要从access_token获取user_id和app_id,就像Facebook Linter过去那样。

最佳答案

正如其他人已经指出的那样,access_token是唯一的随机字符串,因此无法将其解密。另外,我们都知道user_idapp_id首先是生成 token 的先决条件。

但是,假设您将 token 存储在数据库中,并且丢失了关联的user_idapp_id。在这种情况下,关于如何仅拥有 token 的情况下检索它们是一个有效的问题。如果您的 token 仍然有效,则可以这样做。如果过期了,那您就不走运了。

要检索 user_id ,请致电:

https://graph.facebook.com/me?fields=id&access_token=xxx

要检索 app_id ,请致电:
https://graph.facebook.com/app?fields=id&access_token=xxx

在这两种情况下,无论access_token是加密的还是未加密的,关联的ID都将是JSON响应的一部分。

让我们用一个例子来说明这一点。假设马克·扎​​克伯格(Mark Zuckerberg)使用Graph API Explorer生成access_token。调用/me端点将为您提供:
{
  "id": "68310606562"
}

并调用/app端点将为您提供:
{
  "id": "145634995501895"
}

您正在寻找的ID是响应的一部分。

请注意,此不能与https://developers.facebook.com/apps上显示的access_token一起使用(不确定这是Facebook的错误还是故意的)。请使用您的应用通过OAuth收到的access_token

关于facebook - 解密OAuth 2.0访问 token ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7290670/

10-12 16:47
查看更多