【发布时间】:2018-07-27 17:40:45
【问题描述】:
我在授权请求中传递了state=;xyz。我可以在允许屏幕上的浏览器上的 url 中看到相同的内容。单击“允许”按钮后,我获得访问令牌,即带有重定向 uri 的代码,但 Linkedin 不会在 redirect_uri 中返回 state。
有人可以帮我解决这个问题吗?
提前致谢。
【问题讨论】:
标签: oauth-2.0 state linkedin-api
我在授权请求中传递了state=;xyz。我可以在允许屏幕上的浏览器上的 url 中看到相同的内容。单击“允许”按钮后,我获得访问令牌,即带有重定向 uri 的代码,但 Linkedin 不会在 redirect_uri 中返回 state。
有人可以帮我解决这个问题吗?
提前致谢。
【问题讨论】:
标签: oauth-2.0 state linkedin-api
state 参数不是必需的,或者必须根据所讨论的授权和部分流程出现在响应中。我不得不说LinkedIn没有编写违反OAuth 2.0实现的规范,所以也许你正在使用/期望state,而你不应该或正在正确的地方使用它但不正确?
授权码授予 (https://www.rfc-editor.org/rfc/rfc6749#section-4.1) state 不会出现在 access_token 响应中,只有在您发送带有 code 请求的授权时才会出现在 code 响应中。
如果您在令牌请求中发送了 access_token,则隐式授予 (https://www.rfc-editor.org/rfc/rfc6749#section-4.2) state 将返回。
根本不使用资源所有者密码凭据授予 (https://www.rfc-editor.org/rfc/rfc6749#section-4.3) state。
根本不使用客户端凭据授予 (https://www.rfc-editor.org/rfc/rfc6749#section-4.4) state。
如果您发现 LinkedIn 违反了规范,那么值得让他们知道!
【讨论】:
只是通过反复试验解决了这个问题。这个错误对我来说很愚蠢。
我正在传递state=;xyz,但linkedin 期望state=%3Bxyz。
Linkedin 只是忽略了; 和后面的字符,因为我在; 之前没有任何东西,所以linkedin 将其视为空值并且没有返回状态。傻到我这边。
@starlight54 感谢您花时间陪伴我。
【讨论】: