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

Php 我应该如何管理通过OAuth登录的用户?,php,codeigniter,user-controls,oauth,Php,Codeigniter,User Controls,Oauth,假设我有一个获取用户数据的用户表。 我有两个案例,人们可以注册我的网站 案例1。 人们只需输入注册我的网站所需的所有信息。(古老的经典方式) 案例2。 我设置了OAuth,人们可以使用Twitter或其他身份验证系统(提供OAuth API)登录到我的站点。所以,这些用户实际上不会输入他们的 我应该以何种方式将通过案例2登录的用户存储在我的站点中? 我是否只是将他们的信息(我将使用OAuth API获取)存储为他们的用户ID,并将令牌存储为他们的密码? 还是我必须让他们再次注册并提供信息 管理案

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

案例1。 人们只需输入注册我的网站所需的所有信息。(古老的经典方式)

案例2。 我设置了OAuth,人们可以使用Twitter或其他身份验证系统(提供OAuth API)登录到我的站点。所以,这些用户实际上不会输入他们的

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


管理案例1和案例2的最佳方式是什么?有人能告诉我他们自己的经历吗

我们在网站上的做法是将
用户
和他们的
身份验证
分开。用户可以在单独的表中存储任意数量的身份验证。他们可以使用任何一个关联的身份验证登录。因此,我们可能有以下几点:

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"}

现在,当有人试图使用用户名和密码登录到您的站点时,您可以使用
密码类型和与用户名匹配的
用户id
查找相应的
身份验证
记录;如果有人试图通过OAuth2登录,您可以查看数据库中是否存在带有关联的
令牌
oauth\u id
身份验证
,如果是,请登录关联的用户。

我们在网站上的做法是将
用户的想法与他们的
身份验证
分开。用户可以在单独的表中存储任意数量的身份验证。他们可以使用任何一个关联的身份验证登录。因此,我们可能有以下几点:

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"}

现在,当有人试图使用用户名和密码登录到您的站点时,您可以使用
密码类型和与用户名匹配的
用户id
查找相应的
身份验证
记录;如果有人试图通过OAuth2登录,您可以查看数据库中是否存在带有关联的
令牌和
oauth\u id的
身份验证
,如果是,登录相关用户。

这是一个有趣的问答,我一直在考虑自己,因为这是我想在我的CMS上进行的下一次升级

所以我明白你的意思:

当有人尝试登录时:

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

如果它只是一个存储的密码,他们只有一个常规帐户-登录他们


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

这是一个有趣的问答,我一直在考虑自己,因为这是我想在我的CMS上进行的下一次升级

所以我明白你的意思:

当有人尝试登录时:

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

如果它只是一个存储的密码,他们只有一个常规帐户-登录他们

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