如何保护通过OAuth Spotify创建的帐户

时间:2018-02-17 20:21:54

标签: oauth oauth-2.0 passwords authorization spotify

我希望用户通过OAuth Spotify在我的网站上注册一个帐户。我有以下方案:

  1. 用户通过Spotify进行身份验证
  2. 返回Spotify ID和邮件
  3. 将在网站上创建一个帐户(保存到数据库中)
  4. 用户可以使用Spotify登录以访问该帐户
  5. 我预见到的问题是有人可以通过复制另一个用户的ID和邮件来欺骗身份验证,对吗?如果是这样,让用户使用Spotify身份验证创建帐户的更好方法是什么?让用户设置密码?这似乎对我不友好。

    那么,我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用通过OAuth获取的访问令牌来查找关联的用户名。您可以将此作为帐户的基础,而不是您自己网站上的用户名或密码。这个过程就像是:

  1. 用户通过Spotify进行身份验证
  2. Spotify OAuth回调会返回授权码
  3. 您使用授权码来获取用户的访问权限和刷新令牌
  4. 您使用访问令牌访问关联的用户ID,并将其用作您网站上帐户的唯一ID。
  5. 将包含Spotify用户ID的帐户保存到您网站的数据库
  6. 用户可以使用Spotify再次登录以访问其帐户(如果他们之前已批准您的网站,则会通过跳过Spotify OAuth视图来简化流程,并在其浏览器中登录Spotify)
  7. 由于您的应用程序仅从某人的有效访问令牌中检索用户ID,并且您的应用程序将获得的唯一方式是,如果他们通过Spotify OAuth流程登录,您网站上的每个帐户都将被链接一个有效的,独特的Spotify用户。

    在研究此问题时,有关单独使用OAuth对用户进行身份验证的安全注意事项。我会查看this post on Security Stack Exchange并根据您网站需要的安全级别来决定。