gpt4 book ai didi

node.js - Express-jwt 中间件 typescript 类型问题

转载 作者:行者123 更新时间:2023-12-04 13:32:05 26 4
gpt4 key购买 nike

我正在尝试实现一个通过 jwt token 进行身份验证的快速 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 的重点)

最佳答案

user不是 req 上的现有属性目的。您可以为 req 自己打字通过创建 .d.ts 对象文件,例如,创建一个 express.d.ts文件,它将包含:

declare namespace Express {
export interface Request {
user: SomeType
}
}
演示: https://repl.it/repls/OldlaceWhoppingComputationalscience
尝试删除 express.d.ts并且错误将再次出现。

关于node.js - Express-jwt 中间件 typescript 类型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64520849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com