我使用 Spotify Web API 来获取播放列表列表和用户曲目。授权工作正常。我也确实得到了曲目详细信息。但之后我想从 Spotify 注销用户并允许新登录。 用户自动从 Spotify 帐户注销之前有一个会话时间。但用户可能没有耐心等待这么长时间并使用不同的 Spotify 帐户重试。
是否有任何API可以从spotify注销用户。
可以做什么。请帮忙。
虽然使用 Spotify Web API 的应用程序无法注销用户,但它可以强制在登录过程中显示权限对话框。为此,请使用
show_dialog
查询参数,并在调用 https://accounts.spotify.com/authorize端点时将其设置为
true
。
如果已有用户登录,将会出现一个(不是你?) 链接来更改用户。
这适用于“授权代码”和“隐式授予”流程。您可以在
Spotify Web API 授权指南上阅读有关
show_dialog
参数的文档。
除了 José M. Pérez 的回答之外,如果您确实想注销,似乎实现此目的的唯一方法是在用户浏览器中打开 Spotify 注销 URL:https://www.spotify。 com/注销/
为了防止 CORB 保护,可以通过使用 JavaScript 打开弹出窗口并在 2 秒后将其关闭来实现:
const url = 'https://www.spotify.com/logout/'
const spotifyLogoutWindow = window.open(url, 'Spotify Logout', 'width=700,height=500,top=40,left=40')
setTimeout(() => spotifyLogoutWindow.close(), 2000)
更新: https://accounts.spotify.com/en/logout 也可以使用,这将重定向到登录页面,而不是 Spotify 主页,恕我直言,后者更好。
您只想从 “spotify web api” 注销,那么您应该通过清除 身份验证令牌终止您的 Spotify 会话,例如:
AuthenticationClient.clearCookies(getApplication());
我使用提供的 asnwer @jpoppe 解决了这个问题。我不喜欢弹出窗口的想法,所以我使用了 iframe。
<iframe style={{display: 'none'}} src="https://spotify.com/logout"></iframe>
我发现的一个问题是,如果用户已经使用 facebook 登录,那么当使用 facebook 登录另一个帐户时,当他们单击“使用 facebook 登录”按钮时,他们会自动登录。我找不到简单的方法来解决这个问题。
注销后,您可以通过设置回调来设置轻微的延迟,在超时回调函数中您可以将应用程序重定向到主页。
app.get('logout', (req,res) =>{ setTimeout(() =>{ redirect('/');},2000); )};