我有几个希望与 OmniAuth 集成的 Rails 应用程序,但是我遇到了一个概念问题,我想先弄清楚。考虑以下场景:
- 您的应用程序 Foo 支持通过 Twitter 和 Facebook 进行 OmniAuth 登录。
- 乔来到您的网站并通过他的 Twitter 帐户登录。这会在 Foo 上创建一个新用户并将其与这个新的 Twitter 授权相关联。
- Joe 从 Foo 注销,并在六个月内忘记了该站点。
- Joe 回到 Foo,不记得他之前曾使用 Twitter 登录过。
- 乔使用 Facebook 登录。由于他尚未通过其原始 Twitter 授权登录,因此无法检测到他实际上是同一个 Joe,因此创建了一个新帐户。
- Joe 发现了他的旧帐户,现在他很沮丧,因为他的旧内容与这个旧帐户相关联,而且他无法交替使用 Twitter 和 Facebook 登录。
由于 Twitter 不向 Foo 提供电子邮件地址,因此没有通用标识符可用于检测这两个 Joe 是同一个 Joe。您可以决定仅支持向您提供用户电子邮件地址的提供商,但如果用户在不同提供商的不同电子邮件地址上注册,这将无济于事。
我能想到的唯一其他解决方案是为用户提供一些合并两个现有帐户的方法。与使用 OmniAuth 时其他一切相对容易相比,这是一个令人头疼的问题。如果这是唯一的解决方案,是否有人遇到过指南/教程,显示了如何完成此操作的示例?鉴于 OmniAuth 的流行,我很惊讶这个问题没有得到更多的关注。
谢谢!