解密OAuth 2.0访问令牌

gla*_*kou 8 facebook oauth-2.0

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

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

PS:

我需要从Facebook Linter过去的access_token中获取user_id和app_id.

kon*_*o09 19

正如其他人已经指出的那样,它access_token是一个唯一的随机字符串,所以它不能被解密.此外,我们都知道,user_id并且app_id首先是生成令牌的先决条件.

但是,我们假设您将令牌存储在数据库中并丢失了关联的user_idapp_id.在这种情况下,如何检索只有手头的令牌是一个有效的问题.如果您的令牌仍然有效,则可以这样做.如果它已过期,那你就不走运了.

要检索user_id,请拨打:

https://graph.facebook.com/me?fields=id&access_token=xxx
Run Code Online (Sandbox Code Playgroud)

要检索app_id,请拨打:

https://graph.facebook.com/app?fields=id&access_token=xxx
Run Code Online (Sandbox Code Playgroud)

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

让我们举一个例子来说明这一点.让我们假设Mark Zuckerberg使用Graph API Explorer生成一个access_token.调用/me端点可以为您提供:

{
  "id": "68310606562"
}
Run Code Online (Sandbox Code Playgroud)

并调用/app端点为您提供:

{
  "id": "145634995501895"
}
Run Code Online (Sandbox Code Playgroud)

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

请注意,这不适access_token用于https://developers.facebook.com/apps上显示的内容(不确定这是Facebook的错误还是故意的).请使用access_token您的应用通过OAuth收到的内容.