当前位置: 首页 > 知识库问答 >
问题:

LinkedIn OAuth2:“无法验证访问令牌”

楚嘉纳
2023-03-14

当且仅当用户在发出OAuth2请求时登录到LinkedIn时,它才起作用。

如果用户未登录,则会遇到错误。

我们的行动顺序:

  • 成功获取新的访问令牌
  • 使用访问令牌,发布到apiendpointhttps://api.linkedin.com/v1/people/\~

之后,我们将收到一份401,内容如下:

{
  "errorCode": 0,
  "message": "Unable to verify access token",
  "requestId": "C0DUCX81SA",
  "status": 401,
  "timestamp": 1421946470523
}

有时,经过一段时间后,使用相同的访问令牌重试会得到200。有时不会。

如果用户在“401期间”登录LinkedIn,那么之前获取的访问令牌就会神奇地开始工作。

我不知道如何解决这个问题,因为这似乎是领英的一个问题。

有没有人提出任何建议或以前有人看到过这种行为?

我们尝试了cookie设置、请求前的等待时间等。

我们正在将LinkedIn OAuth2身份验证添加到Zotonic[1],但现在被一个不工作的模块卡住了。

[1] http://zotonic.com/

编辑:

有人提到了LinkedIn上的两个讨论。他的回答现在遗憾地从下面的讨论中消失了。

这些是链接:

https://developer.linkedin.com/forum/unable-verify-access-token

https://developer.linkedin.com/forum/unauthorized-invalid-or-expired-token-immediately-after-receiving-oauth2-token

在这些讨论中,我尝试了所有建议,但都无济于事。

编辑#2:

查看LinkedIn上的第一次讨论表明,我不是唯一一个有这些一致性问题的人。如果用户清除了cookie或必须在OAuth“舞蹈”期间登录LinkedIn,LinkedIn就出了问题https://developer.linkedin.com/forum/unable-verify-access-token#comment-36950

更新

感谢Matthijs Bierman,已解决,请参阅以下答案。

共有3个答案

夏侯星洲
2023-03-14

来自移动SDK的访问令牌给出此错误:

使用web OAuth 2.0生成的访问令牌不会遇到任何问题

解决方案:提供以下 2 个标头

    授权 < li>x-li-src(跳过网页)

例如:

Url:https://api.linkedin.com/v1/people/~?格式=json

标头:

Authorization: Bearer AQVYqTNB3bFRAIatBcp4hM1r-......

x-li-src:  msdk 

注意:

如果 AccessToken 是使用 OAuth 2.0 生成的,您可以通过删除第二个标头 (x-li-src) 来使用相同的上述 api。

景建业
2023-03-14

我们在电话里谈过,原来你遇到了和这里一样的问题。LinkedIn不接受身份验证标头,并需要一个请求参数:oauth2_access_token

葛昕
2023-03-14

对我来说,https://api.linkedin.com/v1/people/~?format=json

添加正则标头

授权:不记名 [访问令牌]

直到我通过sdk中的链接并测试后发现,它们还需要您添加请求头

x-li-src: msdk

有了这两个头球,https://api.linkedin.com/v1/people/~?format=json的呼叫成功了。

希望Linkedin很快就能解决这个未记录的需求。。。

 类似资料:
  • 我在刷新访问令牌时得到这个错误:访问令牌无法刷新。请重新验证 这一错误此前曾在2017年4月报告过。OneLogin文档声明刷新令牌可以使用45天左右。我的刷新令牌已经有20个小时了。是文档正确还是刷新令牌的寿命更短?我可以做获取访问令牌和撤销令牌罚款。 public RootObject RefreshToken(HttpRequesterDM rDM){restsharp.deserializ

  • 我正在使用以下示例来玩Spring Cloud OAuth2实现: https://github.com/spring-cloud-samples/authserver https://github.com/spring-cloud-samples/sso 第一个是OAuth服务器,它在对用户进行身份验证时生成JWT令牌。第二个是正在被消耗的资源。根据OAuth规范,资源将用户的身份验证转发给au

  • 在错误=我正在获取“消息”的上下文中需要帮助:“Access token validation Failure.Invalid Pavior.”, 我正在使用OAuth中的授权代码授予类型。我已经使用Azure广告策略将自定义声明映射到应用程序。因此,如果用户Scope=appid/.default,那么我将在令牌中获得一个自定义声明,并在Azure AD上对应用程序具有API权限,如user.r

  • 我在使用jwt.io验证我的azure广告访问令牌时获得无效签名(在手动检查后将转移到scala代码)。 我正在使用 curl 生成访问令牌: 虽然它为我提供了访问令牌,但响应不包含“Id_token”。不知道为什么。 我正在使用 BEGIN 和 END 证书包装 https://login.microsoftonline.com/common/discovery/keys 中的公钥。(如 htt

  • 好的,我已经花了两天的时间来解决这个错误,并找到了一个解决方案。在我的搜索中,我没有找到一个单一的答案来解决我所面临的问题(相反,我找到了多个最终指向解决方案的答案)。因此,我尝试向您解释“访问令牌验证失败。无效访问群体”错误的解决方案: TLDR: 检查“https://graph.Microsoft.com”在https://jwt.ms/上与MSAL进行身份验证时收到的访问令牌中是否作为AU

  • 这段代码以前可以工作,但现在我在尝试验证时出现错误。这里有一个简单的例子,您可以重新创建这个问题。这是一个使用最新版本的firebase模块(3.4.1)的节点脚本。 我刚刚生成了一个启用了所有权限的新GitHub个人访问令牌。我还是会犯同样的错误。 这里有个错误: 有什么想法吗?我查看了最近的变更日志,但没有找到任何与此相关的内容。 更新 似乎已删除对个人访问令牌的支持。我已经将测试应用程序切换