我有类型的路由器。
/ auth / signIn
/ auth / signUp
/用户/全部
/ user /:id
/ rooms / all
/ rooms /:id
还有一条生产路线。
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, '../build', 'index.html'));
});
并且我具有验证JWTToken的功能。
verifyJWTToken(req.headers.token)
.then((user) => {
req.user = user.data._doc;
next();
})
.catch((err: any) => {
res.status(403).json({message: "Invalid token."});
});
如何正确检查某些路由器的令牌? 尤其是 / user / , / rooms /
但不用于 / auth / 和生产路线
我想指出的是,随着时间的流逝,路线的数量会越来越大。
答案 0 :(得分:1)
您可以使用verifyJWTToken
方法作为中间件来验证特定路由的令牌。
对于Rooms API,
router.get('/rooms', verifyJWTToken, (req, res) => {
// some operation
});
对于生产,您可以跳过中间件。
已更新
对于两条路线/rooms/all
和/rooms/:id
,
如果您有两条单独的路线,例如
router.get('/rooms/all', (req, res) => {
// some operation
});
和
router.get('/rooms/:id', (req, res) => {
// some operation
});
然后,您必须在两条路由上都使用middleware
。
但是如果您的设置是这样,
app.use('/rooms', roomRoutes);
现在在您的roomRoutes模块中,存在这两个路由,
router.get('/all', () => {});
router.get('/:id', () => {});
然后,您只能使用一个middleware
,例如
app.use('/rooms', verifyJwtToken, roomRoutes);