【发布时间】:2021-02-07 17:58:58
【问题描述】:
我正在尝试实现通过 jwt 令牌进行身份验证的 express API,并且我正在使用 express-jwt 中间件来验证对方法的访问:
import express from 'express'
import jwt from 'express-jwt'
const app = express()
app.get('/protected', jwt({ secret: 'jwtSecret', algorithms: ['HS256'] }), prot)
const prot = (
req: express.Request,
res: express.Response,
_next: express.NextFunction
): void => {
res.json({
msg: req.user,
})
}
app.listen(3000)
但我收到此错误:
Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs>'.ts(2339)
我已尝试附加req: express.Request & { user: unknown },但该功能不再适合express。
我可以在这里做什么的任何想法。如果情况变得更糟,我可以告诉 TypeScript 以某种方式闭嘴吗,因为我知道该字段会在那里(尽管我知道这不是 TypeScript 的重点)
【问题讨论】:
-
很高兴看到从
@types/express-jwt导出的ExpressJWTRequest对象,但不幸的是,似乎没有任何东西 :(
标签: node.js typescript express jwt express-jwt