小编Ayy*_*yli的帖子

我应该如何使用自己的身份验证系统存储 OAuth?

我有一个现有的注册/登录系统:用户输入电子邮件和密码。密码经过哈希处理。我将其存储在数据库中。

当用户登录时,他们会填写电子邮件和密码。密码经过哈希处理,我在数据库中查找电子邮件并检查电子邮件是否匹配。如果是,则他们已登录。

我想添加一个系统,让用户使用第三方 OAuth 登录,例如 GitHub。我有这样的设置,但我不确定要在数据库中存储哪些数据。

我想我将他们的 GitHub 电子邮件作为电子邮件,然后使用他们的 GitHub 的访问令牌作为密码(所以我会对它进行哈希处理并存储它。)

我认为这会起作用,但我担心访问令牌可能会发生变化,这意味着他们将被锁定在帐户之外。

如果我不应该使用访问令牌作为密码,我应该使用什么?我需要将用户的电子邮件存储在我的数据库中,但目前需要密码,如果他们使用 GitHub 登录,我将无法获得密码。

(请注意,当用户登录时,我调用我的后端来生成一个访问令牌(JWT),我可以使用它来获取他们的用户详细信息,然后将其存储在本地存储中。我希望能够执行相同的操作与 GitHub 或其他什么有关。)

database authentication oauth github-oauth

6
推荐指数
1
解决办法
3746
查看次数

标签 统计

authentication ×1

database ×1

github-oauth ×1

oauth ×1