You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

nestjs/jwt v10.2.0版本缺失expiresIn选项问题咨询

解决NestJS 10.2.0中JwtService.signAsync的expiresIn选项问题

问题分析

升级到NestJS 10.2.0后,JwtService.signAsync的选项中看不到expiresIn,但从你提供的JwtSignOptions接口来看,它是继承自jwt.SignOptions的——这里的jwt指底层依赖的jsonwebtoken包的类型定义,expiresIn本身属于该父接口的标准配置项,并非被NestJS移除。

解决步骤

  • 直接传入expiresIn(无运行时问题)
    尽管TypeScript可能出现提示缺失,但expiresIn依然是有效的配置参数,因为JwtSignOptions继承了jsonwebtoken的SignOptions,直接使用即可:

    await this.jwtService.signAsync(yourPayload, {
      expiresIn: '2h',
      secret: process.env.JWT_SECRET_KEY
    });
    
  • 修复类型提示问题
    如果类型检查报错,可通过以下方式处理:

    • 确保项目已安装@types/jsonwebtoken,且版本与jsonwebtoken主包版本匹配
    • 用类型断言绕过提示:
      import type * as jwt from 'jsonwebtoken';
      
      await this.jwtService.signAsync(yourPayload, {
        expiresIn: '2h',
        secret: process.env.JWT_SECRET_KEY
      } as jwt.SignOptions);
      
  • 核对依赖版本
    @nestjs/jwt 10.2.0可能更新了对jsonwebtoken的依赖版本,导致类型定义的展示逻辑变化。可以查看@nestjs/jwt的package.json文件,确认其依赖的jsonwebtoken版本,确保项目中安装的版本与之兼容。

内容的提问来源于stack exchange,提问作者Rahul Dahal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 01:15:54