使用访问代码交换授权代码

Posted

技术标签:

【中文标题】使用访问代码交换授权代码【英文标题】:Exchange authorization code with access code 【发布时间】:2015-02-02 10:05:19 【问题描述】:

我对 Spotify 的 Web API 授权指南有疑问。 https://developer.spotify.com/web-api/authorization-guide/

我已经完成了第 1 步到第 3 步,没有任何问题。但是在第 4 步“您的应用程序请求刷新和访问令牌”中,您需要以下参数来交换令牌。 1) 授予类型 2) 代码 3)redirect_uri

头参数: 1)授权:基本

如果我是对的 1) grant_type 是您从第 3 步“回调”(http://example.com/callback?code=#thecode) 中获得的代码,但我从哪里获得 2) 代码?

【问题讨论】:

我在文档中解释错误。 1) grant_type 必需。根据 OAuth 2.0 规范中的定义,该字段必须包含值“authorization_code”。我认为他们的意思是它必须是一个字符串,上面写着“authorization_code” 【参考方案1】:

没关系,我已经解决了。

对于第 4 步“您的应用程序请求刷新和访问令牌”,已完成以下操作:

当然设置一个 POST 请求,在我的例子中,它是带有框架 Cakephp 的 PHP。

需要填写的参数有:

    grant_type="authorization_code" code="您从回调中获得的代码 (http://ex.com/callback?code=#thecode)" redirect_uri="你保存的 uri https://developer.spotify.com/my-applications/#!/application"

头参数:

我使用了另一种方法。 我通过 POST 正文发送的 client_id 和 client_secret。

【讨论】:

以上是关于使用访问代码交换授权代码的主要内容,如果未能解决你的问题,请参考以下文章

在 Oauth OpenID - 授权代码授予类型中,我们将在哪里将“代码”交换为“访问令牌”,为啥?

Google OAuth2 - 令牌的交换访问代码 - 不起作用

无法在跨客户端谷歌 oauth2.0 中交换访问令牌和刷新令牌的授权码

如何存储访问令牌? (Oauth 2,Auth 代码流程)

无法在 node.js 中交换访问令牌的代码。 Mailchimp API

Keycloak 问题无法在仅承载模式下交换代码以获得授权