我使用Spotify Web API获取播放列表和用户跟踪列表。授权工作正常。我也得到了跟踪细节。但之后我想从spotify注销用户并允许新登录。 在用户从spotify帐户自动注销之前有一段会话时间。但是用户可能没有耐心等待这么久,并尝试使用不同的spotify帐户。
是否有任何API可以从spotify注销用户。
可以做些什么。请帮忙。
答案 0 :(得分:7)
虽然使用Spotify Web API的应用程序无法将用户注销,但它可以强制在登录过程中显示权限对话框。为此,请使用show_dialog
查询参数,并在调用https://accounts.spotify.com/authorize端点时将其设置为true
。
如果有用户已登录,则会有一个(不是你?)链接来更改用户。
这适用于'授权码'和'隐含授权'流动。您可以在Spotify Web API Authorization Guide上阅读有关show_dialog
参数的文档。
答案 1 :(得分:1)
您只想从" spotify web api" 退出,然后您应该通过清除 身份验证令牌来终止您的spotify会话喜欢:
AuthenticationClient.clearCookies(getApplication());
答案 2 :(得分:1)
我使用提供的@jpoppe解决了这个问题。我不喜欢有一个弹出窗口的想法,所以我改用了iframe。
<iframe style={{display: 'none'}} src="https://spotify.com/logout"></iframe>
我发现的一个问题是,如果用户已使用Facebook登录,则在使用Facebook登录另一个帐户时,如果单击“使用Facebook登录”按钮,他们将自动登录。我找不到解决此问题的简单方法。
答案 3 :(得分:0)
作为JoséM.Pérez的回答,如果您真的想要退出,那么通过在用户的浏览器中打开Spotify注销URL,似乎唯一可行的方法是:https://www.spotify.com/logout/
为防止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主页,这是更好的恕我直言。