用户如何在Oauth注册?

时间:2012-09-18 17:30:50

标签: php oauth

我一直在研究这个Oauth概念,我仍然对这个概念感到困惑。我的一个主要问题是如何注册Google帐户或Twitter帐户。

例如,假设为了注册我的网站,您必须提供用户名/密码/电子邮件/群组名称。如果您通过我的网站注册,那么您可以非常轻松地提供这些字段。但是,让我们说用户想要通过谷歌注册。这些字段将如何填充?

根据我的理解,一旦您注册了Google凭据,您就会被重定向到我的网站上您填写必填字段的页面。我不确定这是否正确。谁能帮我理解这个呢?

2 个答案:

答案 0 :(得分:6)

OAuth基本上是这样的(取决于这些点由多个步骤组成的版本):

  • 您将用户重定向到他登录的提供商
  • 用户被重定向回给您并收到访问令牌

使用此访问令牌,您可以从提供商处请求用户数据。通常,提供商会提供一个电话,您可以使用该电话询问用户的电子邮件地址,全名和(提供商特定的)用户ID ,但这不是OAuth的一部分。

您现在如何使用此信息来处理该用户,就像他登录您的网站完全靠您自己一样。每次看到新的用户ID 时,您可能希望创建一个新的用户对象。

答案 1 :(得分:3)

在了解如何使用OAuth2进行新用户注册之前,有几个基本概念需要一些清晰度。这些是:

  • 资源所有者(你,人)
  • 身份提供商(Google,Facebook,Twitter等)
  • 资源服务器(与身份提供商或其他服务相同)
  • 资源(您想要访问的内容)
  • 客户端应用(您用来访问这些内容的应用)

对于新用户注册,您将遵循相同的客户端应用程序序列,请求授予权限以授予对资源的访问权限。这将触发登录页面,用户登录,创建授权代码(由IdP)并发送回客户端应用程序。客户端应用程序交换此代码以获取访问令牌(涉及一些加密签名,阅读文档 - 基本上允许客户端应用程序证明自己的身份)。

此访问令牌随后用于请求访问资源 - 在本例中为新用户配置文件。这可以是名称,电子邮件,图片等。使用此选项可在客户端应用程序配置文件数据库中创建新行。将创建一个新用户帐户。

然后,对于后续登录,客户端应用程序将使用此访问令牌通过Google Auth服务器验证其生命周期 - 然后创建本地会话/ cookie以登录用户。

希望这很清楚。