我正在授权请求中传递state=;xyz
。我可以在“允许”屏幕上的浏览器中的url中看到相同的内容。单击“允许”按钮后,我获得了访问令牌,即带有重定向uri的代码,但Linkedin并未在redirect_uri中返回state
。
有人可以帮我吗?
谢谢。
答案 0 :(得分:1)
state
参数不是必需的,或者必须根据所涉及的授权和部分流程而出现在响应中。我不得不站出来说,LinkedIn尚未编写违反OAuth 2.0规范的规范,因此也许您在不应该使用或期望使用state
或在正确的地方使用它,但是错误地?
授权代码授予(https://tools.ietf.org/html/rfc6749#section-4.1)state
不会出现在access_token
响应中,只有在您与请求一起发送时,才出现在授权code
响应中code
。
隐式授予(https://tools.ietf.org/html/rfc6749#section-4.2)state
,则会与access_token
一起返回。
资源所有者密码凭据授予(https://tools.ietf.org/html/rfc6749#section-4.3)state
完全没有使用。
客户端凭据授予(https://tools.ietf.org/html/rfc6749#section-4.4)state
完全没有使用。
如果您发现LinkedIn违反规范,那就值得让他们知道!
答案 1 :(得分:1)
仅需反复尝试即可解决。错误对我来说很愚蠢。
我正在传递state=;xyz
,但linkedin期望state=%3Bxyz
。
Linkedin只是忽略;
及其后的字符,并且由于我在;
之前没有任何内容,所以linkedin将其视为空值并且未返回状态。愚蠢的我。
@starlight54感谢您为我花一些时间。