Spotify白名单URI仍返回{"error": "invalid_grant","error_description":"Invalid redirect URI"}。

8

我知道已经有类似的问题,但所有答案大多数都是“哦,我忘记在结尾处加上斜杠了”。但这真的让我疯了。我正在尝试从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://S并寻找通配符,但我无法解决此错误... 欢迎提供任何帮助。
1个回答

17
在进行一些重构后,我遇到了相同的问题,然后变得非常疯狂。在POST请求中,redirect_uri必须与客户端的第一个redirect_uri相同。根据Spotify文档所述:

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


1
是的,这有点误导人,但这样修复了它。 - n212

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接