从多个社交网络(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...)获取统一配置文件的数据库方案的主要内容,如果未能解决你的问题,请参考以下文章

关于 Facebook 等社交网络的数据库模式

同时为多个社交网络启用OAuth2Sso

社交网络和网络隶属关系

使用自己的 API 后端处理社交网络身份验证

Facebook 类型社交网络的 NoSQL 数据库结构

从社交网络收集用户信息的库或 API [关闭]