我有一个Nodejs应用程序,我使用Passeport让我的用户通过Oauth连接Facebook或Google。我在连接后存储基本数据,例如:uid,名字等。Passport.js:UID是唯一的吗?
我该如何确定,我收到的uid对于给定的用户将始终是唯一的?我的意思是说,数据来自Facebook或谷歌,为什么我不能面对不同用户的讨厌的重复uid?
我有一个Nodejs应用程序,我使用Passeport让我的用户通过Oauth连接Facebook或Google。我在连接后存储基本数据,例如:uid,名字等。Passport.js:UID是唯一的吗?
我该如何确定,我收到的uid对于给定的用户将始终是唯一的?我的意思是说,数据来自Facebook或谷歌,为什么我不能面对不同用户的讨厌的重复uid?
该UID仅在该单个提供者的用户列表范围内是唯一的。
This article建议您结合提供者名称和UID以获取唯一值。
供应商的名称和uID的组合将唯一标识我们的应用程序内的用户。
我会使用提供商的域名,如“google.com”或“com.google”。
当您使用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
}
});