【问题标题】:Linkedin oauth2 api, authorization do not return "state"Linkedin oauth2 api,授权不返回“状态”
【发布时间】:2018-07-27 17:40:45
【问题描述】:

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

有人可以帮我解决这个问题吗?

提前致谢。

【问题讨论】:

    标签: oauth-2.0 state linkedin-api


    【解决方案1】:

    state 参数不是必需的,或者必须根据所讨论的授权和部分流程出现在响应中。我不得不说LinkedIn没有编写违反OAuth 2.0实现的规范,所以也许你正在使用/期望state,而你不应该或正在正确的地方使用它但不正确?

    1. 授权码授予 (https://www.rfc-editor.org/rfc/rfc6749#section-4.1) state 不会出现在 access_token 响应中,只有在您发送带有 code 请求的授权时才会出现在 code 响应中。

    2. 如果您在令牌请求中发送了 access_token,则隐式授予 (https://www.rfc-editor.org/rfc/rfc6749#section-4.2) state 将返回。

    3. 根本不使用资源所有者密码凭据授予 (https://www.rfc-editor.org/rfc/rfc6749#section-4.3) state

    4. 根本不使用客户端凭据授予 (https://www.rfc-editor.org/rfc/rfc6749#section-4.4) state

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

    【讨论】:

      【解决方案2】:

      只是通过反复试验解决了这个问题。这个错误对我来说很愚蠢。 我正在传递state=;xyz,但linkedin 期望state=%3Bxyz。 Linkedin 只是忽略了; 和后面的字符,因为我在; 之前没有任何东西,所以linkedin 将其视为空值并且没有返回状态。傻到我这边。 @starlight54 感谢您花时间陪伴我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-13
        • 1970-01-01
        • 2016-09-06
        • 1970-01-01
        • 2019-11-18
        • 2020-09-20
        相关资源
        最近更新 更多