【问题标题】:Handle expired Facebook access token处理过期的 Facebook 访问令牌
【发布时间】:2014-12-01 16:19:15
【问题描述】:

我正在开发依赖于 Facebook 提供的服务的 Windows Phone 8.1 应用程序。它没有使用任何 FacebookClient 或任何其他 Facebook NuGet 包。

我无法确切了解应该如何处理访问令牌的有效性。换句话说,我有一个过去某个时候的访问令牌,我仍然想看看我现在是否可以使用它,或者用户应该进行身份验证并获得一个新的。

当我搜索糟糕的 Facebook 文档时,他们建议 (here, at App Tokens section) 这样做的一种方法是将请求与 AppSecret 一起发送。

他们也建议:

“请注意,由于此请求使用您的应用程序密码,因此绝不能在客户端代码或可反编译的应用程序二进制文件中进行。重要的是,您的应用程序密码永远不会与任何人共享。因此,此 API 调用应该只能使用服务器端代码制作。”

这很好理解。

但由于我是从客户端直接调用 Facebook 到服务器,这是否仍然适用于 Windows Phone 应用程序? (或者毕竟,我猜甚至是 Android 或 Iphone 应用程序)

应该如何处理,以不暴露 AppSecret 的方式?

【问题讨论】:

  • 只需向图形 api 发出任何请求。如果访问令牌过期,您将收到一条错误消息

标签: facebook facebook-graph-api windows-phone windows-phone-8.1 access-token


【解决方案1】:

您可以向 Graph API 发出任何简单的请求,如果 Access Tokenn 无效,您将收到来自 Graph API 的错误,或者调用

GET /debug_token?input_token={input-token}&access_token={access-token}

在哪里

  • {input_token}: 你想获取相关信息的访问令牌
  • {access_token}:您的应用访问令牌或来自应用开发者的有效用户访问令牌

【讨论】:

  • 你给了我同样的链接 :)
  • 我已经读过,问题是获取应用访问令牌。这需要服务器到服务器的调用,以免暴露应用程序机密。我的客户端应用程序会调用服务器,这可能会暴露 AppSecret。无论如何,我使用保存的访问令牌进行检查调用,如果失败,用户将被重定向以再次进行身份验证。
  • 是的,但它的另一部分,另一个电话。不过,您对应用程序访问令牌的安全性是正确的。您可以编写一个后端服务,它只获取您的应用提供的用户访问令牌,然后添加应用访问令牌,将请求发送到 FB,然后将结果返回到您的应用发送的请求。
猜你喜欢
  • 2016-01-14
  • 1970-01-01
  • 1970-01-01
  • 2012-10-05
  • 2011-11-20
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 2012-12-06
相关资源
最近更新 更多