Spotify API获取播放列表异常:他人登录仍返回本人数据求助
Spotify API获取当前登录用户播放列表异常问题
我编写了一段基于Spotify API获取用户播放列表的代码,本地用自己的登录信息运行正常,但老师在他的设备上登录后,代码返回的依然是我的播放列表,而非老师的。我已采用OAuth 2.0认证流程并配置了正确的权限范围,代码中也未存储我的Spotify凭据,怀疑是因为API项目由我创建导致此问题,求助如何获取实际登录用户的播放列表。
相关代码:
def getUsersPlaylists(self, offset): # Returns playlist that the user has created and liked headers = { "Authorization" : f"Bearer {self.access_token}" } endpoint = 'https://api.spotify.com/v1/me/playlists?offset=' + str(offset) + '&limit=50' return requests.get(endpoint, headers=headers).json()
问题分析与解决方案
核心原因
你使用的/v1/me/playlists端点是正确的,它会根据请求头中access_token对应的用户身份返回播放列表。出现这个问题的本质是:老师登录后,代码使用的依然是你的用户身份对应的access_token,而非老师的。
具体排查与解决步骤
- 强制走完整的OAuth授权流程:每次不同用户使用应用时,必须重新引导用户跳转到Spotify官方登录页面,让用户输入自己的账号完成授权,不能复用之前的授权会话或token。
- 检查access_token的获取逻辑:确认每次调用API前,都是获取当前登录用户的有效access_token,避免硬编码、缓存或复用旧token(哪怕代码没显式存储凭据,运行环境的会话缓存、本地存储也可能留存旧token)。
- 验证权限范围:确保授权时申请了必要的权限(如
playlist-read-private、playlist-read-collaborative),且用户授权时同意了这些权限——权限不足不会导致返回他人播放列表,但会影响播放列表的完整性。 - 排查token存储/缓存机制:如果应用有token缓存逻辑(比如存在本地文件、会话或数据库),要确保不同用户的token隔离存储,或者每次启动应用时都重新触发授权流程获取新token。
- 测试token有效性:可以调用
/v1/me端点验证当前access_token对应的用户信息,确认返回的是当前登录用户的资料,而非你的。
内容的提问来源于stack exchange,提问作者Matthew
相关产品推荐
相关产品推荐

