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

use*_*594 0 php user-controls codeigniter oauth

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

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

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

我应该以什么方式存储在我的网站中登录案例2的用户?我只是将他们的信息(我将使用OAuth API获取)存储为他们的用户ID,并将令牌作为他们的密码存储?或者我是否必须使用提供的信息再次注册?

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

Mic*_*ley 5

我们在网站上做的方式是将a User和他们的想法分开Authentication.用户可以拥有任意数量的身份验证,存储在单独的表中.他们可以使用任何一种相关的身份验证登录.所以我们可能会有以下内容:

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"}
Run Code Online (Sandbox Code Playgroud)

现在,当有人试图登录到您的网站的用户名和密码,就可以查看相应的Authentication记录与类型passworduser_id该用户名相匹配; 相反,如果有人试图通过OAuth2用户登录时,你可以看到,如果有一个Authentication与相关联token,并oauth_id在数据库中,如果是这样,请登录相关的用户.