从多个社交网络(Facebook 和 Linkedin...)获取统一配置文件的数据库方案
Posted
技术标签:
【中文标题】从多个社交网络(Facebook 和 Linkedin...)获取统一配置文件的数据库方案【英文标题】:Database Scheme for unified profiles fetched from multiple Social Networks (Facebook and Linkedin...) 【发布时间】:2013-08-07 09:56:31 【问题描述】:我正在构建的application 允许用户使用他们的 Facebook 和 Linkedin 帐户登录,以便从这些网络中获取他们的朋友。 他们的每个朋友都可以是该应用程序的用户。
我有几个问题要解决:
-
我应该如何构建我的数据库架构?
如何统一配置文件?
可能的解决方案
关于结构:
我正在使用 mongo(但我愿意接受建议)。所以我认为我会创建一个collection
of Users
,其中每个用户文档如下所示:
User =
appId: <id>,
connections: [userId]
所以,每个用户都有:
-
应用生成的唯一 ID(为简单起见,可以是文档的 ID)。
一组用户 ID。在我的应用中创建的朋友的个人资料的 ID。
关于统一配置文件:
我应该根据用户的电子邮件或姓名统一用户吗?还是两者都有?
杂项
虽然我可以使用LoginRadius,但我只是为此使用singly,然后他们突然决定终止该服务。换句话说,我不想依赖第三方工具,因为这是一个核心功能。
【问题讨论】:
当然是基于电子邮件统一用户:) 【参考方案1】:var UserSchema = new Schema(
name: type: String, default: '' ,
email: type: String, default: '' ,
provider: type: String, default: '' ,
hashed_password: type: String, default: '' ,
salt: type: String, default: '' ,
authToken: type: String, default: '' ,
facebook: ,
linkedin:
)
我正在为我的用户集合使用上述架构。
当新用户想要注册时,使用本地策略或社交策略
我只是使用带有“upsert: true”选项的update mongoose函数来更新或
创建一个条目。
【讨论】:
以上是关于从多个社交网络(Facebook 和 Linkedin...)获取统一配置文件的数据库方案的主要内容,如果未能解决你的问题,请参考以下文章