我有几个Rails应用程序要与OmniAuth集成,但是我有一个概念上的问题,我想首先解决。请考虑以下情形:

  • 您的应用程序Foo支持通过Twitter和Facebook进行OmniAuth登录。
  • Joe进入您的站点并通过其Twitter帐户登录。这将在Foo上创建一个新用户,并将其与此新的Twitter授权相关联。
  • Joe注销了Foo,并且忘记了六个月的时间。
  • Joe返回Foo,不记得他以前使用Twitter登录过。
  • Joe使用Facebook登录。由于他尚未通过其原始Twitter授权登录,因此无法检测到他实际上是同一位Joe,并创建了一个新帐户。
  • Joe发现了他的旧帐户,现在感到沮丧的是,他的较早内容与该旧帐户相关联,并且他无法与Twitter和Facebook互换登录。

  • 由于Twitter不会向Foo提供电子邮件地址,因此没有通用标识符可用于检测两个Joe是同一个Joe。您可以决定仅支持提供用户电子邮件地址的提供商,但是如果用户在不同提供商上使用不同的电子邮件地址注册,这将无济于事。

    我能想到的唯一的其他解决方案是为用户提供某种方式来合并两个现有帐户。与使用OmniAuth相比,其他所有功能都相对容易相比,这是一个很大的麻烦。如果这是唯一的解决方案,那么有没有人遇到过指南/教程,其中显示了如何完成此操作的示例?令人惊讶的是,鉴于OmniAuth的普及,这个问题没有得到更多的关注。

    谢谢!

    最佳答案

    你的直觉是正确的。您必须为用户提供合并工具...否则您可以忽略该问题。

    关于ruby-on-rails - OmniAuth:防止同一用户使用多个帐户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4644399/

    10-14 13:25