首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该如何管理通过OAuth登录的用户?

我应该如何管理通过OAuth登录的用户?
EN

Stack Overflow用户
提问于 2011-03-02 14:06:57
回答 2查看 355关注 0票数 0

假设我有一个获取用户数据的用户表。我有2个案例,人们可以注册我的网站。

案例1.人们只是输入注册我的站点所需的所有信息。(传统的经典方式)

案例2.我设置了OAuth,人们可以使用推特或其他身份验证系统(提供OAuth应用程序接口)登录到我的站点。因此,这些用户实际上不会输入他们的

我应该如何在我的站点中存储通过案例2登录的用户?我是否只是将他们的信息(我将使用OAuth API获取)存储为他们的用户ID,并将令牌存储为他们的密码?或者我必须让他们使用所提供的信息再次注册?

管理案例1和案例2的最佳方法是什么?谁能告诉我他们自己在这方面的经验?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-02 14:14:46

我们在我们的网站上做到这一点的方式是将User的概念和它们的Authentication分开。用户可以拥有任意数量的身份验证,存储在单独的表中。他们可以使用任何一种关联的身份验证来登录。因此,我们可能会有以下内容:

代码语言:javascript
复制
User:
  id: 1
  username: brandon_tilley
Authentication:
  id: 1
  user_id: 1
  type: password
  data: {"password": "super-secret"}
Authentication:
  id: 2
  user_id: 1
  type: oauth2
  data: {"token": "0123456789abcdef", "oauth_id": "543210"}

现在,当有人尝试使用用户名和密码登录到您的站点时,您可以使用password类型和与用户名匹配的user_id来查找相应的Authentication记录;如果有人尝试通过OAuth2登录,您可以查看数据库中是否存在具有关联的tokenoauth_idAuthentication,如果存在,则登录关联的用户。

票数 5
EN

Stack Overflow用户

发布于 2011-03-02 23:02:02

这是一个有趣的问答,也是我一直在思考的事情,因为这是我想在我的CMS上进行的下一个升级。

所以我明白你的意思:

当有人尝试登录时:

根据"users“表检查他们的用户名,然后检查他们在"authentications”表中使用的身份验证类型。

如果这只是一个存储的密码,他们只有一个普通的帐户-登录他们。

如果他们是使用OAuth等存储的,tr使用存储的信息将他们远程登录到他们选择的服务-如果成功,就登录他们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5164012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档