使用Nest GraphQL(TypeScript)实现JWT登录注册时遇到问题
Nest.js + GraphQL + JWT 登录注册问题排查方案
- 强制开启GraphQL详细错误输出:在
GraphQLModule的配置项中设置debug: true,同时编写全局异常过滤器(@Catch())捕获所有异常,直接打印完整错误栈信息 - 检查JWT核心配置:确认
JwtModule.register中的secret值配置正确,signOptions里的expiresIn格式合法(例如'1d',注意带引号) - 验证GraphQL上下文传递:确保登录接口通过
@Context()能正确获取请求对象,AuthGuard在GraphQL上下文里能正常解析token - 数据库层校验:注册时检查用户创建语句是否执行成功,登录时确认是否正确查询到对应用户,密码哈希比对是否使用
bcrypt.compare等正确方法 - 手动添加关键日志:使用Nest自带的
Logger类,在用户查询、token生成、校验等关键节点打印日志,示例代码:import { Logger } from '@nestjs/common'; const authLogger = new Logger('AuthService'); authLogger.log(`登录请求:用户邮箱 ${email}`); - 直接用Playground测试:通过GraphQL Playground调用登录/注册mutation,开启debug后能看到详细的错误返回信息
内容的提问来源于stack exchange,提问作者huang zhihang
相关产品推荐
相关产品推荐

