所以现在我有很多方法可以通过 facebook/google/github 等登录我的应用程序。但问题是,对于每项服务,我得到的关于我的数据几乎相同,尤其是电子邮件地址,现在为每项服务流星创建新帐户,我想知道如何检查我的数据库中的某个用户是否已经在使用某个电子邮件(当然是唯一的),而不是创建新用户,只需扩展服务对象,如果还没有这样的用户,则创建它。(或类似的)(扩展示例):(用户单击通过 facebook 登录):
{ "createdAt" : ISODate("2013-11-03T17:13:14.232Z"),
"_id" : "xxx", "services" : { "facebook" : { "accessToken" :xxx", "expiresAt" : xxx, "id" : "1841894180", "email" : "xxx", "name" : "Boaz Hoch", "first_name" : "Boaz"
依此类推,然后在注销并使用 google 登录后,用户对象将如下所示:
{ "createdAt" : ISODate("2013-11-03T17:13:14.232Z"),
"_id" : "xxx", "services" : { "facebook" : { "accessToken" :xxx", "expiresAt" : xxx, "id" : "1841894180", "email" : "xxx", "name" : "Boaz Hoch", "first_name" : "Boaz" and more of facebook...} //end of facebook service, google:{ { "accessToken" :xxx", "expiresAt" : xxx, "id" : "1841894180", "email" : "xxx", "name" : "Boaz Hoch", "first_name" : "Boaz" and more
有什么最佳做法吗?