我有一个Nodejs应用程序,我使用Passeport让我的用户通过Facebook或Google通过Oauth连接。我在连接后存储基本数据,例如:uid,firstname等。
我如何能够确信我收到的uid对于给定的用户来说总是独一无二的?我的意思是,数据来自Facebook或谷歌,所以为什么我有一天不能为不同用户面对一个令人讨厌的重复uid?
答案 0 :(得分:4)
当您使用Facebook或Google时,您通过OAuth获得的ID是唯一的。但如果您想同时使用两者,那么我建议您使用 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
}
});
答案 1 :(得分:3)
UID仅在该提供商的用户列表范围内是唯一的。
This article建议您将提供程序的名称和UID组合在一起以获取唯一值。
提供商名称和uID的组合将唯一标识我们应用内的用户。
我会使用提供商的域名,例如“google.com”或“com.google”。