如何保护通过 OAuth Spotify 创建的帐户
How do I secure an account that is created via OAuth Spotify
我希望用户通过 OAuth Spotify 在我的网站上注册一个帐户。我有以下方案:
- 用户通过 Spotify 进行身份验证
- 返回 Spotify ID 和邮件
- 将在网站上创建一个帐户(保存到数据库)
- 用户可以使用他的 Spotify 登录以访问该帐户
我在这里预见到的问题是,有人可以通过复制另一个用户的 ID 和邮件来欺骗身份验证,对吗?如果是这样,让用户使用 Spotify 身份验证创建帐户的更好方法是什么?让用户设置密码?这似乎对我不友好。
那么,我该如何实现呢?
您可以使用通过 OAuth 获取的访问令牌来查找关联的用户名。您可以使用它作为您帐户的基础,而不是您自己网站上的用户名或密码。该过程类似于:
- 用户通过 Spotify 进行身份验证
- Spotify OAuth 回调returns授权码
- 您使用授权码为用户获取访问和刷新令牌
- 您使用访问令牌访问关联的用户 ID,并将其用作您网站上帐户的唯一 ID。
- 将具有 Spotify 用户 ID 的帐户保存到您站点的数据库中
- 用户可以使用 Spotify 再次登录以访问他们的帐户(如果他们之前已经批准了您的网站并在他们的浏览器中登录了 Spotify,这将通过跳过 Spotify OAuth 视图来简化流程)
由于您的应用程序只会从某人的有效访问令牌中检索用户 ID,并且您的应用程序接收用户 ID 的唯一方式是他们通过 Spotify OAuth 流程登录,因此您网站上的每个帐户都将链接到一个有效、唯一的 Spotify 用户。
在调查此问题时,存在关于单独使用 OAuth 对用户进行身份验证的安全注意事项。我会查看 this post on Security Stack Exchange 并根据您的站点需要的安全级别来决定。
我希望用户通过 OAuth Spotify 在我的网站上注册一个帐户。我有以下方案:
- 用户通过 Spotify 进行身份验证
- 返回 Spotify ID 和邮件
- 将在网站上创建一个帐户(保存到数据库)
- 用户可以使用他的 Spotify 登录以访问该帐户
我在这里预见到的问题是,有人可以通过复制另一个用户的 ID 和邮件来欺骗身份验证,对吗?如果是这样,让用户使用 Spotify 身份验证创建帐户的更好方法是什么?让用户设置密码?这似乎对我不友好。
那么,我该如何实现呢?
您可以使用通过 OAuth 获取的访问令牌来查找关联的用户名。您可以使用它作为您帐户的基础,而不是您自己网站上的用户名或密码。该过程类似于:
- 用户通过 Spotify 进行身份验证
- Spotify OAuth 回调returns授权码
- 您使用授权码为用户获取访问和刷新令牌
- 您使用访问令牌访问关联的用户 ID,并将其用作您网站上帐户的唯一 ID。
- 将具有 Spotify 用户 ID 的帐户保存到您站点的数据库中
- 用户可以使用 Spotify 再次登录以访问他们的帐户(如果他们之前已经批准了您的网站并在他们的浏览器中登录了 Spotify,这将通过跳过 Spotify OAuth 视图来简化流程)
由于您的应用程序只会从某人的有效访问令牌中检索用户 ID,并且您的应用程序接收用户 ID 的唯一方式是他们通过 Spotify OAuth 流程登录,因此您网站上的每个帐户都将链接到一个有效、唯一的 Spotify 用户。
在调查此问题时,存在关于单独使用 OAuth 对用户进行身份验证的安全注意事项。我会查看 this post on Security Stack Exchange 并根据您的站点需要的安全级别来决定。