在我的NodeJs(express+MongoDB)中,我使用JWT令牌来允许用户路由,例如更改密码,更新用户。。。但是,给定的JWT令牌并不特定于某个用户,因为它允许另一个用户访问所有路由,并在给定正确路由(包括ID)的情况下对任何用户进行更改。 路由按参数中的id工作。 用户的id也集成在令牌的有效载荷中。 如何使每个用户都能访问自己的路由,而不是其他用户的路由?
让我们看一个例子
如果我的用户试图访问他自己的帖子/post:id
,路由应该是这样的,并且id
作为一个查询参数与请求一起发送,但是如果您不想这样做,那么假设用户已经在向/posts
发送令牌,并且他正在向它发出请求
router.get('/posts',(req,res)=>){
//verfiy the token
//if the token is valid cont // else send(403)
// get the userID from it
res.redirect('/posts/<userId>);
}