所以在过去的几天里,我一直在为我的网站实施Facebook和Google OAuth 2社交登录。
一切都很好,基本上是:
但是这里有棘手的部分。 Google可以使用两个域名发送电子邮件:
如果Facebook帐户是googlemail.com
,那么Google帐户(使用gmail
)将无法链接。现在我通过检查gmail.com
和googlemail.com
的数据库来解决谷歌与Facebook的关系,但问题是如果它被撤销而Facebook就是找不到地址的人。
我以为我可以将gmail.com
和googlemail.com
检查添加到facebook登录功能以检查unqiue电子邮件地址,但我想知道这是否会导致我无法预见的问题。
我想到的一些事情是:
verified
标志来解决这个问题)所以问题是:添加一个DB子句来查找gmail.com
和googlemail.com
我的Facebook登录功能是个坏主意吗?
我应该假设gmail.com
和googlemail.com
是两个独立的帐户吗?
感谢您的想法,
答案 0 :(得分:1)
您可以尝试将所有“googlemail.com”字符串转换为“gmail.com”。这个概念是系统找到googlemail,将其转换为gmail。
实施例: 用户输入test@googlemail.com
算法将是:
email = "test@googlemail.com"
replace("@googlemail.com","@gmail.com",email )
authenticate(email);
答案 1 :(得分:0)
我决定通过在用户使用Facebook或Google登录时搜索与电子邮件地址相关的googlemail.com
和gmail.com
域来实际解决此问题。
这看起来效果很好,并且优于规范化并可能更改用户信息以解决此问题。