我一直在研究这个Oauth概念,我仍然对这个概念感到困惑。我的一个主要问题是如何注册Google帐户或Twitter帐户。
例如,假设为了注册我的网站,您必须提供用户名/密码/电子邮件/群组名称。如果您通过我的网站注册,那么您可以非常轻松地提供这些字段。但是,让我们说用户想要通过谷歌注册。这些字段将如何填充?
根据我的理解,一旦您注册了Google凭据,您就会被重定向到我的网站上您填写必填字段的页面。我不确定这是否正确。谁能帮我理解这个呢?
答案 0 :(得分:6)
OAuth基本上是这样的(取决于这些点由多个步骤组成的版本):
使用此访问令牌,您可以从提供商处请求用户数据。通常,提供商会提供一个电话,您可以使用该电话询问用户的电子邮件地址,全名和(提供商特定的)用户ID ,但这不是OAuth的一部分。
您现在如何使用此信息来处理该用户,就像他登录您的网站完全靠您自己一样。每次看到新的用户ID 时,您可能希望创建一个新的用户对象。
答案 1 :(得分:3)
在了解如何使用OAuth2进行新用户注册之前,有几个基本概念需要一些清晰度。这些是:
对于新用户注册,您将遵循相同的客户端应用程序序列,请求授予权限以授予对资源的访问权限。这将触发登录页面,用户登录,创建授权代码(由IdP)并发送回客户端应用程序。客户端应用程序交换此代码以获取访问令牌(涉及一些加密签名,阅读文档 - 基本上允许客户端应用程序证明自己的身份)。
此访问令牌随后用于请求访问资源 - 在本例中为新用户配置文件。这可以是名称,电子邮件,图片等。使用此选项可在客户端应用程序配置文件数据库中创建新行。将创建一个新用户帐户。
然后,对于后续登录,客户端应用程序将使用此访问令牌通过Google Auth服务器验证其生命周期 - 然后创建本地会话/ cookie以登录用户。
希望这很清楚。