我已经使用 Devise 和 OAuth 将社交登录(Facebook、Twitter 等)与 Rails 应用程序集成。请求和回调都运行良好,用户能够有效地验证应用程序并登录。
我的问题是这样的:
使用 Devise,我的网站将用户的电子邮件地址作为用户名。因此,每当用户第一次通过社交网站登录时,都会为他们的帐户存储“连接”记录,以显示他们登录过哪些社交网站。如果他们在我的站点上还没有帐户,则使用回调数组中的电子邮件地址创建一个帐户。然后将连接与返回的令牌和机密一起存储以供以后使用(FB 帖子、推文等)。
不幸的是,Twitter 不提供电子邮件地址。为了避免这种情况,我要求首次使用 Twitter 登录的用户只需提供一个电子邮件地址,以便创建一个帐户。但是,如果他们已经在我的网站上有一个帐户,我不知道该怎么办。我无法检查他们是否已经这样做了,因为我没有得到匹配的电子邮件地址。这最终可能导致用户拥有多个帐户。
所以,我有点不知所措,如果有人有任何建议,那将非常有帮助。谢谢!:)