【问题标题】:Spotify: Permanent auth with authorization code workflowSpotify:具有授权代码工作流程的永久身份验证
【发布时间】:2016-03-14 15:09:49
【问题描述】:

我正在构建一个原型来证明从 Spotify 派生用户播放列表等。 由于这是用户信息,我必须使用 Spotify 的授权代码工作流程(参考 https://developer.spotify.com/web-api/authorization-guide/#authorization_code_flow

在此工作流程中,应用程序请求用户授予范围权限,以便提取相关信息。 在随后的一系列调用中:

  1. 调用 /authorize 回调请求中发送的redirect_uri并发送代码 例如 redirect_uri=../abc 收到 ../abc/callback?code=xyz

    如文档中的示例。

  2. xyz 然后被发送到 /api/token 以获取 access_token 和 refresh_token

在用户授予授权后,有什么方法可以避免重复调用 /authorize?

实际上,我能否不将代码(来自/authorize)视为 oauth 令牌并保留它(例如在数据库中)以在每次需要时获取新的 access_token? (作为直接比较检查 facebook 的 oauth 令牌,可以保存并重复使用以进行每次身份验证)

我怎么记得用户已经授予我访问他/她的 Spotify 个人资料和数据的权限?

请说明我是否遗漏了文档中明显的内容。如果这已在其他地方指定,请指出我。

非常感谢!

【问题讨论】:

    标签: spotify


    【解决方案1】:

    对于这个用例,您可以使用Authorization Code flow。你应该坚持的是它返回的refresh_token,它可以用来获取访问令牌。您还可以选择保留访问令牌,您可以在一小时内使用它,因此您不需要每次都获取新的访问令牌。

    Authorization Guide 中有一个常见问题解答,其中讨论了类似的场景,用户希望管理她的播放列表而不必每次都经历登录过程:

    您基本上需要为您的用户帐户颁发的访问令牌和刷新令牌。要获得一对访问令牌/刷新令牌,您需要遵循授权代码流程(如果您需要特定范围才能获得批准)或客户端凭据(如果您只需要签署您的请求,例如在获取某个播放列表时)。获得它们后,您可以使用访问令牌并在过期时刷新它,而无需显示任何登录表单。

    【讨论】:

      猜你喜欢
      • 2017-10-16
      • 2020-07-05
      • 2020-03-01
      • 2019-10-04
      • 2018-11-29
      • 2021-11-19
      • 2017-05-28
      • 2020-05-15
      • 1970-01-01
      相关资源
      最近更新 更多