Linkedin oauth2 API,授权不返回“状态”

时间:2018-07-19 07:56:49

标签: oauth-2.0 state linkedin-api

我正在授权请求中传递state=;xyz。我可以在“允许”屏幕上的浏览器中的url中看到相同的内容。单击“允许”按钮后,我获得了访问令牌,即带有重定向uri的代码,但Linkedin并未在redirect_uri中返回state

有人可以帮我吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

state参数不是必需的,或者必须根据所涉及的授权和部分流程而出现在响应中。我不得不站出来说,LinkedIn尚未编写违反OAuth 2.0规范的规范,因此也许您在不应该使用或期望使用state或在正确的地方使用它,但是错误地?

  1. 授权代码授予(https://tools.ietf.org/html/rfc6749#section-4.1state不会出现在access_token响应中,只有在您与请求一起发送时,才出现在授权code响应中code

  2. 如果您在令牌请求中发送了
  3. 隐式授予(https://tools.ietf.org/html/rfc6749#section-4.2state,则会与access_token一起返回。

  4. 资源所有者密码凭据授予(https://tools.ietf.org/html/rfc6749#section-4.3state完全没有使用。

  5. 客户端凭据授予(https://tools.ietf.org/html/rfc6749#section-4.4state完全没有使用。

如果您发现LinkedIn违反规范,那就值得让他们知道!

答案 1 :(得分:1)

仅需反复尝试即可解决。错误对我来说很愚蠢。 我正在传递state=;xyz,但linkedin期望state=%3Bxyz。 Linkedin只是忽略;及其后的字符,并且由于我在;之前没有任何内容,所以linkedin将其视为空值并且未返回状态。愚蠢的我。 @starlight54感谢您为我花一些时间。