【问题标题】:LinkedIn API: What determines the expiration time of an access token?LinkedIn API:什么决定了访问令牌的到期时间?
【发布时间】:2015-09-30 00:26:04
【问题描述】:

从LinkedIn API拉取信息时,访问令牌会随机过期,应用程序将无法从API拉取信息。此问题在很长一段时间后随机发生。我正在尝试确定这是否可能来自 LinkedIn 方面。有什么方法可以验证吗?

【问题讨论】:

  • 您是否对特定的 API 调用有此问题?如果有,是哪些?

标签: linkedin


【解决方案1】:

根据LinkedIn documentation,您应该在收到令牌的同一请求中收到访问令牌的到期日期。

访问令牌响应

成功的访问令牌请求将返回一个 JSON 对象,其中包含 以下字段:

access_token — 用户的访问令牌。根据您对 API 使用条款的同意,此值必须保持安全。

expires_in — 从请求到令牌过期前的剩余秒数。目前,所有访问令牌的有效期均为 60 天。

要记住的一点是,访问令牌可以手动revoked by the user:

无效令牌

如果您使用无效令牌进行 API 调用,您将收到 从服务器返回的“401 Unauthorized”响应。令牌可能是 无效且需要重新生成,因为:

  • 它已过期。
  • 用户已撤销他们最初授予您的应用程序的权限。
  • 您已更改应用程序请求的成员权限(范围)。

由于可预测的到期时间并不是导致令牌失效的唯一因素,因此通过将用户重定向回授权工作流的开始位置,对应用程序进行编码以正确处理遇到 401 错误非常重要。

正如@JustinKominar 所提到的,此页面上未提及的一件事是,只有您最近的访问令牌才有效。这意味着请求新的访问令牌将使之前的所有访问令牌失效,因此请确保您的令牌是最新的!

【讨论】:

  • 这都是准确的信息 - 但我要补充的一件事是,请求新的访问令牌将使任何以前发布的访问令牌无效。只有您最近的令牌是有效的 - 因此请检查您的工作流程以确保您没有尝试使用旧令牌(缓存?)如果用户请求了较新的令牌。
  • 感谢您的帖子。有没有办法让 LinkedIn 将 expires_in 字段设置为永不过期?我无权访问代码,但我们的应用程序从 API 中提取此信息,我正在尝试确定令牌需要过期的原因。
  • @JustinKominar 可以确认,但据我了解,这是不可能的,设计使然。此外,请记住,用户可以随时撤销您的应用程序的权限,因此您仍然需要小心处理应用程序中的令牌。
  • @JustinKominar “但我要补充的一件事是,请求新的访问令牌将使任何以前发布的访问令牌无效”这是不正确的。目前我观察到新旧访问令牌都在 v2 LinkedIn API 中工作。
猜你喜欢
  • 2020-02-29
  • 1970-01-01
  • 2019-05-30
  • 1970-01-01
  • 2013-02-06
  • 2020-05-06
  • 1970-01-01
  • 2022-12-29
  • 2012-07-05
相关资源
最近更新 更多