Passport.js:UID是唯一的吗?

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

我怎么能保证,我收到的用户名将永远是唯一的给定的用户? 我的意思是,数据来自Facebook或Google,所以为什么我不能面对不同用户的讨厌的重复uid?

UID只在该单一提供者的用户列表的范围内是唯一的。

本文build议您将提供者的名称和UID结合起来以获得唯一的值。

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

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

当您使用Facebook或Google时,通过OAuth获取的ID是唯一的。 但是,如果你想使用两个,那么我会build议让你的dbSchema (如果你正在使用mongoose)像这样 –

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 } });