gpt4 book ai didi

node.js - JWT: 'string | undefined' 类型的参数不可分配给 'Secret' 类型的参数

转载 作者:行者123 更新时间:2023-12-04 16:25:07 28 4
gpt4 key购买 nike

我正在使用 dotenv 来声明 JWT_SECRET 环境变量,它显示了标题中提到的错误。
.env

NODE_ENV="development"
JWT_SECRET="mySecretString"
environment.d.ts
import { Secret } from 'jwt-promisify'

declare global {
namespace NodeJS {
interface ProcessEnv {
JWT_SECRET: Secret,
NODE_ENV: 'development' | 'production',
PORT?: number | string
}
}
}

export {}
我在我的路由文件中使用 JWT_SECRET 签名 token
route.ts
const token = await jwt.sign({ id: newUser.id }, process.env.JWT_SECRET)
这里的智能感知正在运行,但是当我运行该应用程序或编译它时,会出现错误。
错误
error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'Secret'.
Type 'undefined' is not assignable to type 'Secret'.

32 const token = await jwt.sign({ id: newUser.id }, process.env.JWT_SECRET)
~~~~~~~~~~~~~~~~~~~~~~

最佳答案

  jwt.sign(data, process.env.SIGNATURE_KEY as string, {
expiresIn: '30d',
algorithm: "HS256"
}, (err, encoded)=>{
err ? reject(err) : resolve(encoded)
})
对于 Typescript,我认为类型转换有效。我也没有实现 async-await 因为 sign 方法没有暗示为 Promise .但我想它也有效!

关于node.js - JWT: 'string | undefined' 类型的参数不可分配给 'Secret' 类型的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66328425/

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