授权和Web API调用结束后如何从Spotify注销用户

问题描述 投票:0回答:5

我使用 Spotify Web API 来获取播放列表列表和用户曲目。授权工作正常。我也确实得到了曲目详细信息。但之后我想从 Spotify 注销用户并允许新登录。 用户自动从 Spotify 帐户注销之前有一个会话时间。但用户可能没有耐心等待这么长时间并使用不同的 Spotify 帐户重试。

是否有任何API可以从spotify注销用户。

可以做什么。请帮忙。

spotify asp.net-web-api
5个回答
15
投票

虽然使用 Spotify Web API 的应用程序无法注销用户,但它可以强制在登录过程中显示权限对话框。为此,请使用

show_dialog
查询参数,并在调用
https://accounts.spotify.com/authorize
端点时将其设置为 true

如果已有用户登录,将会出现一个(不是你?) 链接来更改用户。

这适用于“授权代码”和“隐式授予”流程。您可以在

Spotify Web API 授权指南
上阅读有关 show_dialog 参数的文档。


9
投票

除了 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 主页,恕我直言,后者更好。


1
投票

您只想从 “spotify web api” 注销,那么您应该通过清除 身份验证令牌终止您的 Spotify 会话,例如:

AuthenticationClient.clearCookies(getApplication());

1
投票

我使用提供的 asnwer @jpoppe 解决了这个问题。我不喜欢弹出窗口的想法,所以我使用了 iframe。

<iframe style={{display: 'none'}} src="https://spotify.com/logout"></iframe> 

我发现的一个问题是,如果用户已经使用 facebook 登录,那么当使用 facebook 登录另一个帐户时,当他们单击“使用 facebook 登录”按钮时,他们会自动登录。我找不到简单的方法来解决这个问题。


0
投票

注销后,您可以通过设置回调来设置轻微的延迟,在超时回调函数中您可以将应用程序重定向到主页。

app.get('logout', (req,res) =>{ setTimeout(() =>{ redirect('/');},2000); )};

© www.soinside.com 2019 - 2024. All rights reserved.