Я хочу сохранить сгенерированный токен в подтвержденной электронной почте колонке пользователя. Маркер является частью ссылки подтверждения, которая будет отправлена пользователю, поэтому, когда пользователь нажимает на ссылку, я могу проверить, соответствует ли она, а затем обновляет ее до «активирована».
Теперь проблема заключается в том, что я не могу понять, как сохранить его в методе ConfirmEmailLink.
async register(createDTO: CreateUserDto) {
const { email } = createDTO;
const user = await this.userModel.findOne({ email })
if (user) {
throw new HttpException('User already exists', HttpStatus.BAD_REQUEST);
}
const createdUser = new this.userModel(createDTO);
var newUser = await createdUser.save();
await SendEmail(createDTO.email, await **this.ConfirmEmailLink(createdUser._id)**, createDTO.email);
return this.sanitizeUser(createdUser);
//return null;
}
В приведенном выше коде есть ConfirmEmailLink, который является параметром метода SendEmail
async ConfirmEmailLink(userId: string) {
const id = v4();
var payload = { userId: userId };
var secret = process.env.JWT_SIMPLE_TOKEN;
var token = jwt.encode(payload, secret);
console.log("This is uuid", userId);
var link = `${process.env.HOST}/user/confirm/${token}/${id}`;
let user = await this.userModel.findById(userId);
if (!user) {
throw new HttpException("Registration not complete, try again or contact admin", HttpStatus.NOT_FOUND);
}
**//This is where the problem is, I want to save the token in ConfirmEmail column**
await this.userModel.updateOne({confirmEmail: token});
return link;
}
Я буду признателен предложения или, если есть лучший способ сделать это Спасибо