Spotify:使用授权码工作流程的永久授权
Spotify: Permanent auth with authorization code workflow
我正在构建一个原型来证明从 Spotify 派生用户播放列表等。
由于这是用户信息,我必须使用 Spotify 的授权码工作流程(参考 https://developer.spotify.com/web-api/authorization-guide/#authorization_code_flow)
在此工作流程中,应用程序请求用户授予范围权限,以便提取相关信息。
在接下来的一系列调用中:
调用/authorize
回调请求中发送的 redirect_uri 并发送代码
例如
redirect_uri=../abc 收到 ../abc/callback?code=xyz
如文档中所示。
xyz 然后被发送到 /api/token 以获得 access_token 和 refresh_token
有什么方法可以避免在用户授予授权后重复调用 /authorize 吗?
实际上,我能否不将代码(来自 /authorize)视为 oauth 令牌并保留它(比如在数据库中)以在每次需要时获得一个新的 access_token? (作为直接比较检查 facebook 的 oauth 令牌,可以保存并重复使用以进行每次身份验证)
我如何记住用户已经授予我访问 his/her Spotify 个人资料和数据的权限?
请指出我是否遗漏了文档中明显的内容。如果在其他地方已经指定,请指出我的正确之处。
非常感谢!
对于此用例,您可以使用 Authorization Code flow。你应该坚持的是refresh_token
它returns,它可以用来获取访问令牌。您还可以选择保留访问令牌,您可以在一小时内使用它,这样您就不需要每次都获取新的访问令牌。
Authorization Guide 中有一个 FAQ 讨论了一个类似的场景,用户想要管理她的播放列表而不必每次都经过登录过程:
You basically need an access token and a refresh token issued for your user account. For obtaining a pair of access token / refresh token you need to follow the Authorization Code Flow (if you need a certain scope to be approved) or Client Credentials (if you just need to sign your request, like when fetching a certain playlist). Once you obtain them, you can use your access token and refresh it when it expires without having to show any login form.
我正在构建一个原型来证明从 Spotify 派生用户播放列表等。 由于这是用户信息,我必须使用 Spotify 的授权码工作流程(参考 https://developer.spotify.com/web-api/authorization-guide/#authorization_code_flow)
在此工作流程中,应用程序请求用户授予范围权限,以便提取相关信息。 在接下来的一系列调用中:
调用/authorize 回调请求中发送的 redirect_uri 并发送代码 例如 redirect_uri=../abc 收到 ../abc/callback?code=xyz
如文档中所示。
xyz 然后被发送到 /api/token 以获得 access_token 和 refresh_token
有什么方法可以避免在用户授予授权后重复调用 /authorize 吗?
实际上,我能否不将代码(来自 /authorize)视为 oauth 令牌并保留它(比如在数据库中)以在每次需要时获得一个新的 access_token? (作为直接比较检查 facebook 的 oauth 令牌,可以保存并重复使用以进行每次身份验证)
我如何记住用户已经授予我访问 his/her Spotify 个人资料和数据的权限?
请指出我是否遗漏了文档中明显的内容。如果在其他地方已经指定,请指出我的正确之处。
非常感谢!
对于此用例,您可以使用 Authorization Code flow。你应该坚持的是refresh_token
它returns,它可以用来获取访问令牌。您还可以选择保留访问令牌,您可以在一小时内使用它,这样您就不需要每次都获取新的访问令牌。
Authorization Guide 中有一个 FAQ 讨论了一个类似的场景,用户想要管理她的播放列表而不必每次都经过登录过程:
You basically need an access token and a refresh token issued for your user account. For obtaining a pair of access token / refresh token you need to follow the Authorization Code Flow (if you need a certain scope to be approved) or Client Credentials (if you just need to sign your request, like when fetching a certain playlist). Once you obtain them, you can use your access token and refresh it when it expires without having to show any login form.