Spotify 白名单 URI 仍然返回 "error": "invalid_grant", "error_description": &

Posted

技术标签:

【中文标题】Spotify 白名单 URI 仍然返回 "error": "invalid_grant", "error_description": "Invalid redirect URI"【英文标题】:Spotify Whitelisted URI still returns "error": "invalid_grant", "error_description": "Invalid redirect URI" Spotify 白名单 URI 仍然返回 "error": "invalid_grant", "error_description": "Invalid redirect URI" 【发布时间】:2018-10-15 21:57:40 【问题描述】:

我知道已经有类似的问题,但所有的答案大多是“哦,我忘了把斜线放在最后”但这绝对让我发疯。我试图从 Spotify API 获取访问令牌,但我不断收到无效的重定向 uri 错误。

这是我的 api 调用

const request = require('superagent');

const data = 
    grant_type: 'authorization_code',
    code: code,
   // redirect_uri: encodeURIComponent('http://localhost:3000/Test')
   redirect_uri: 'http://localhost:3000/Test'
;

request.post('https://accounts.spotify.com/api/token')
    .set(
        'Content-Type': 'application/x-www-form-urlencoded',
        'Authorization': 'Basic ' + base64.encode(configs.client_id + ':' + configs.client_secret)
    )
    .send(data)
    .end((err, tokenRes) => 
        if (tokenRes) 
            res.send(token: tokenRes)
         else 
            res.error(err);
        
    );

这些是我列入白名单的 URI:

http://localhost:3000/LoginRedirect

http://localhost:3000/Test

http://localhost:3000/Home

我在白名单中添加了很多组合,末尾带有斜杠,http:// 已删除搜索通配符,但我无法摆脱此错误...感谢任何帮助。

【问题讨论】:

【参考方案1】:

在进行了一些重构之后,我自己也遇到了同样的问题,我自己都快疯了。发布请求中的redirect_uri 必须与来自客户端的第一个redirect_uri 相同。来自Spotify docs:

必填。 此参数仅用于验证(没有实际重定向)。此参数的值必须与请求授权码时提供的 redirect_uri 的值完全匹配。

【讨论】:

是的.. 这有点误导,但这解决了它。

以上是关于Spotify 白名单 URI 仍然返回 "error": "invalid_grant", "error_description": &的主要内容,如果未能解决你的问题,请参考以下文章

特定 uri 的 ModSecurity 白名单

Oauth 错误 invalid_request:redirect_uri 未列入白名单

URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单?

“URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。”但在本地工作

Facebook 登录消息:“URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。”

Facebook 登录消息:“URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。”