多提供商认证外行术语

时间:2017-09-17 06:21:10

标签: authentication

我试图了解库OmniAuth的作用,首先我想看看我是否理解"多提供商身份验证"正确。这是否意味着您的应用可以使用Facebook或谷歌作为不同类型的提供商来验证您作为用户?因此,您可以通过提供您的脸书ID / pw或您的谷歌ID / pw登录您的应用程序,两者都会带您到您的应用程序下的同一帐户?

1 个答案:

答案 0 :(得分:2)

我知道它有点晚了但是,是的,你是对的。 arrayOf旨在为您的用户提供更多选项,以便通过利用其他身份验证提供程序来注册和验证自己。在一个简单的情况下,可以用这种方式描述过程:

  1. 您在提供商网站注册您的应用。所以他们知道你是谁。他们通常需要一个重定向网址,这是他们将以后发送auth响应的地方。
  2. 你得到一个app_id和app_secret。
  3. 当用户点击"使用..."登录时,会将他们带到他们的身份验证网址(该链接通常会将您的app_id和重定向网址作为参数)
  4. 用户说,好的,我授权这个应用程序做这些事情。提供商会将您的授权码发回给您。
  5. 现在,您的应用可以放心地与提供商进行交流。嘿提供者,我是这个应用程序(显示app_id和app_secret),这个用户授权我(显示授权代码)。提供商现在向您发回成功身份验证数据(包含令牌,OmniAuth和其他信息)
  6. 在服务器端流程中,您的应用可以检查uid以查看是否与系统中的任何用户匹配(假设您有uid表格链接到auth_providers)。如果是,请签署该用户,如果没有签署该用户。
  7. 大多数情况下,您希望用户只使用一个身份验证提供程序(Facebook或Google或其他内容)。使用两者可以产生2个独立的帐户。当然,您可以找到一种方法来解决这个问题,例如检测从user数据返回的电子邮件是否已被使用,但这是不可靠的,因为它只有在用户同时注册Google和Facebook时才有效电子邮件。如果您想让用户同时登录多个提供商,请由您来找到重复数据删除的解决方案。