用户如何在Oauth注册?

use*_*497 8 php oauth

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

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

根据我的理解,一旦您注册谷歌凭据,您将被重定向到我的网站上您填写必填字段的页面.我不确定这是否正确.任何人都可以帮我理解这个吗?

Jan*_*ger 7

基本上OAuth的工作原理如下(取决于版本,这些点由多个步骤组成):

  • 您将用户重定向到他登录的提供程序
  • 用户被重定向回您,您将收到一个访问令牌

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

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


Kin*_*ngz 6

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

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

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

然后使用此访问令牌请求访问资源 - 在本例中为新用户配置文件。这可以是姓名、电子邮件、图片等。使用它在您的客户端应用程序配置文件数据库中创建一个新行。创建一个新的用户帐户。

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

希望这很清楚。