我有一個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
}
});