【问题标题】:Passport.js : Are UID unique?Passport.js:UID 是唯一的吗?
【发布时间】:2016-08-22 03:32:37
【问题描述】:

我有一个 Nodejs 应用程序,我使用 Passeport 让我的用户通过 Oauth 通过 Facebook 或 Google 进行连接。我在连接后存储基本数据,例如:uid、名字等。

如何确保我收到的 uid 对于给定用户来说始终是唯一的?我的意思是,数据要么来自 Facebook 要么来自谷歌,那么为什么有一天我不能面对不同用户的讨厌的重复 uid 呢?

【问题讨论】:

    标签: node.js oauth google-oauth passport.js facebook-login


    【解决方案1】:

    UID 仅在该单个提供商的用户列表范围内是唯一的。

    This article 建议您将提供者的名称与 UID 结合起来以获得唯一值。

    提供者名称和 uID 的组合将唯一标识我们应用内的用户。

    我会使用提供商的域名,例如“google.com”或“com.google”。

    【讨论】:

      【解决方案2】:

      当您使用 Facebook 或 Google 时,您通过 OAuth 获得的 id 是唯一的。但是,如果您想同时使用两者,那么我建议您像这样制作 dbSchema(如果您使用的是猫鼬) -

      var userSchema = new mongoose.Schema({
        local: {
          username: String,
          password: String
        },
        facebook: {
          id: String,
          token: String,
          email: String,
          name: String
        },
        google: {
          id: String,
          token: String,
          email: String,
          name: String
        }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-29
        • 1970-01-01
        • 1970-01-01
        • 2013-11-15
        • 2012-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多