2017-08-15 89 views
0

使用由mongoose生成的ObjectId作爲檢查數據是否屬於特定用戶的一種方法是不是很好的做法?使用mongoose的ObjectId進行授權

示例代碼須藤:

實例DB:

[ObjectId]: { 
    myStuff: 'foo' 
} 

例檢查授權:

if (jwt.bar.ObjectId === ObjectId) { 
    //then you can mod this data because it is yours 
} 

如果不是,什麼是處理這個的推薦呢?

+0

可能重複[MongoDB ObjectID安全會話ID](https://stackoverflow.com/questions/37263985/mongodb-objectid-safe-for-session-id) – Fabien

回答

1

不能使用ObjectID作爲會話標識符,因爲一旦文檔被創建就不會更新它,並且它是可預測的。

MongoDB Documentation

的12字節的ObjectId值包括:

自Unix紀元表示秒的4字節的值,

一個3字節的機標識符,

一個2字節進程ID,

和一個3字節計數器s以隨機值開始跑步。

從安全角度來看,這將是一個不好的做法。

使用正確的會話ID來識別來自用戶的請求。

+0

@thanks。使用類似NPM的'uniqid'來生成UID然後將其保存在用戶的配置文件中以用於相同的建議是否是一個好主意? – hunterInt

相關問題