使用mongoose生成的ObjectId作为检查数据是否属于某个用户的方法是否是一种好习惯?
示例sudo代码:
db:
中的示例[ObjectId]: {
myStuff: 'foo'
}
检查授权的示例:
if (jwt.bar.ObjectId === ObjectId) {
//then you can mod this data because it is yours
}
如果没有,推荐的方法是什么?
答案 0 :(得分:1)
您不能将ObjectID用作会话标识符,因为一旦创建文档它就永远不会更新,并且它是可预测的。
12字节的ObjectId值包括:
一个4字节的值,表示自Unix纪元以来的秒数,
一个3字节的机器标识符,
一个2字节的进程ID,
和一个3字节的计数器,以随机值开始。
从证券的角度来看,这将是一种不好的做法。
使用正确的会话ID来识别来自用户的请求。