【发布时间】:2019-08-16 15:45:28
【问题描述】:
我正在尝试根据尝试登录的用户的密码创建用户令牌。但是,我不想使用环境中的密码,而是使用分配给数据库内用户对象的密码。
import { Injectable } from '@nestjs/common';
import { JwtService } from '@nestjs/jwt';
import { UserService } from '@src/modules/user/services';
@Injectable()
export class AuthService {
public constructor(private readonly jwtService: JwtService,
private readonly userService: UserService) {}
public async createToken(email: string): Promise<JwtReply> {
const expiresIn = 60 * 60 * 24;
const user = await this.userService.user({ where: { email } });
const accessToken = await this.jwtService.signAsync({ email: user.email },
/* user.secret ,*/
{ expiresIn });
return {
accessToken,
expiresIn,
};
}
}
我是 Nestjs 的新手,也许我遗漏了一些东西。
node-jsonwebtoken 确实在 sign(...) 函数中提供了必要的参数。 nestjs/jwt 缺少此参数(参见代码)。如果不使用node-jsonwebtoken 或者更抽象的问题,您将如何解决它:我处理用户机密的方式在这里有意义吗?谢谢。
【问题讨论】:
标签: javascript node.js typescript jwt nestjs