You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spotify开发者API教程中Illegal redirect_uri错误排查求助

解决Spotify API的Illegal redirect_uri错误(已核对URI仍报错)

我之前踩过一模一样的坑!明明代码里的redirect_uri和Spotify开发者后台My Applications里的设置看起来完全一致,结果还是弹出Illegal redirect_uri的错误,给你几个实用的排查方向:

  • 检查大小写和末尾斜杠:Spotify对redirect_uri的验证是完全严格匹配的,哪怕是一个字母大小写不同,或者末尾多了/少了/,都会判定不匹配。比如http://localhost:8888/callback和http://localhost:8888/Callback、http://localhost:8888/callback/都是不同的URI,逐字符对比一遍。
  • 本地地址的格式一致性:如果你用本地测试,确保代码里的URI和后台设置的是同一种格式——要么全用http://localhost:8888/callback,要么全用http://127.0.0.1:8888/callback,这两个地址虽然指向同一台机器,但Spotify会视为不同的redirect_uri。
  • 确认代码里的变量真的正确赋值:看你贴的代码片段里client_id = id;,先确认这个id是你的实际客户端ID,同理检查redirect_uri的变量有没有写错。可以在代码里加一行console.log(redirect_uri);,启动服务后看控制台输出的URI和后台设置的是不是完全一致——有时候会不小心在拼接时多加了空格或者特殊字符,肉眼很难发现。
  • 等待后台设置生效:修改Spotify后台的redirect_uri后,偶尔会有几分钟的延迟才会生效。试试退出开发者后台重新登录,确认设置的URI已经保存,然后重启你的Express服务再测试。
  • 检查授权请求的实际参数:用浏览器的开发者工具(Network面板)查看/login路由跳转的请求URL,看看其中的redirect_uri参数值是不是和你预期的一致,有时候代码里的变量引用错误会导致实际发送的URI不对。

另外,给你贴一段标准的Express授权路由示例,你可以对照检查自己的代码:

var express = require('express');
var request = require('request');
var querystring = require('querystring');
var cookieParser = require('cookie-parser');

var client_id = '你的实际客户端ID'; // 替换成你的ID
var client_secret = '你的实际客户端密钥'; // 替换成你的密钥
var redirect_uri = 'http://localhost:8888/callback'; // 必须和后台完全一致

var app = express();

app.use(express.static(__dirname + '/public'))
   .use(cookieParser());

app.get('/login', function(req, res) {
  var scope = 'user-read-private user-read-email';
  res.redirect('https://accounts.spotify.com/authorize?' +
    querystring.stringify({
      response_type: 'code',
      client_id: client_id,
      scope: scope,
      redirect_uri: redirect_uri, // 确保这里用的是上面定义的变量
      state: 'random-string-for-security'
    }));
});

// 其他路由和逻辑...

app.listen(8888);
console.log('Listening on 8888');

内容的提问来源于stack exchange,提问作者nmowery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:13:58