【问题标题】:Database Scheme for unified profiles fetched from multiple Social Networks (Facebook and Linkedin...)从多个社交网络(Facebook 和 Linkedin...)获取统一配置文件的数据库方案
【发布时间】:2013-08-07 09:56:31
【问题描述】:

我正在构建的application 允许用户使用他们的 Facebook 和 Linkedin 帐户登录,以便从这些网络中获取他们的朋友。 他们的每个朋友都可以是该应用程序的用户。

我有几个问题要解决:

  1. 我应该如何构建我的数据库架构?
  2. 如何统一配置文件?

可能的解决方案

关于结构:

我正在使用 mongo(但我愿意接受建议)。所以我认为我会创建一个collection of Users,其中每个用户文档如下所示:

User = { appId: <id>, connections: [userId] }

所以,每个用户都有:

  1. 应用生成的唯一 ID(为简单起见,可以是文档的 ID)。
  2. 一组用户 ID。在我的应用中创建的朋友的个人资料的 ID。

关于统一配置文件:

我应该根据用户的电子邮件或姓名统一用户吗?还是两者都有?

杂项

虽然我可以使用LoginRadius,但我只是为此使用singly,然后他们突然决定终止该服务。换句话说,我不想依赖第三方工具,因为这是一个核心功能。

【问题讨论】:

  • 当然是基于电子邮件统一用户:)

标签: mongodb database-design social-networking


【解决方案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函数来更新或

创建一个条目。

【讨论】:

    猜你喜欢
    • 2013-01-19
    • 2011-04-10
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多