所以在过去的几天里,我一直在为我的网站实施 Facebook 和 Google OAuth 2 社交登录。
一切都很好,基本上:
- 当用户登录他们的电子邮件地址时,将与数据库上已有的内容进行比较
- 如果电子邮件存在,则社交登录将附加到该现有电子邮件,并且用户登录到他们现有的帐户
- 否则创建一个新帐户。(就像我注意到它在这里工作一样)
但棘手的部分来了。谷歌可以有两个域的电子邮件:
- gmail.com
- googlemail.com
如果 Facebook 帐户是在googlemail.com
Google 帐户中创建的(使用gmail
)将不会链接。现在我已经通过检查两者的数据库解决了谷歌与 Facebook 的关系,gmail.com
但是googlemail.com
如果它被反转并且 Facebook 是找不到地址的人,问题就来了。
我以为我可以将gmail.com
and googlemail.com
check 添加到 facebook 登录功能以检查 unqiue 电子邮件地址,但我想知道这是否会导致我无法预见的问题。
我的一些想法是:
- 未来与其他 API 的兼容性等
- 复杂
- 安全?(我通过使用
verified
Facebook API 中的标志来解决这个问题) - 其他电子邮件提供商可能在指向同一帐户的双电子邮件域方面存在相同问题(也许我必须编写一个庞大的无法维护的列表?)。
所以问题是:添加一个 DB 子句来查找我gmail.com
的googlemail.com
Facebook 登录功能是一个坏主意吗?
我应该假设gmail.com
并且googlemail.com
是两个独立的帐户吗?
谢谢你的想法,