昨天使用了token作為新增、刪除bootcamp或course的依據
但只要任何人取得了你的token, 就能任意地刪除你的bootcamp&course的資料
這聽起來不太安全,對吧?
所以,今天我們要來實作bootcamp&user間的relationship
確保是user本人在更新或刪除bootcamp或course資料
首先,要在Bootcamp model reference User model:
user: {
type: mongoose.Schema.ObjectId,
ref: 'User',
required: true
}
我們要確保是user本人在更動bootcamp資料
所以要將bootcamp的user id與登入系統user的id做比較
if (bootcamp.user.toString() !== req.user.id) {
return next(
new ErrorResponse(
`User ${req.params.id} is not authorized to update this bootcamp`,
401
)
);
}
bootcamp = await Bootcamp.findByIdAndUpdate(req.params.id, req.body, {
new: true,
runValidators: true
});
而course所有權實作的方式與bootcamp是完全相同的
就留給大家想想怎麼完成囉~