expressJWT能使用router.post解析到req.auth里吗
时间: 2024-09-16 18:04:20 浏览: 44
vue-router3.0版本中 router.push 不能刷新页面的问题
Express-JWT是一个Node.js中间件,用于验证HTTP请求头中的JSON Web Token (JWT)。它主要用于保护API路由,确保只有经过身份验证的用户才能访问。当你使用`router.post`处理POST请求,并结合Express-JWT,可以在请求处理程序中解析JWT并将其存储在`req.auth`属性中。
例如,你可以这样做:
```javascript
const jwt = require('express-jwt');
const auth = jwt({ secret: 'your-secret-key' });
router.post('/protected', auth, (req, res, next) => {
try {
const user = req.auth.user; // 这里 req.auth 就会包含JWT解析后的用户信息
// 现在你可以操作 user 对象,如进行业务逻辑处理
} catch (err) {
// 如果验证失败,错误会被抛出
return res.status(401).json({ message: 'Unauthorized' });
}
// 正常处理请求...
});
```
阅读全文