在我的小应用程序中,我想验证用户电子邮件。为此,我向用户发送了一封带有链接的电子邮件。用户点击链接,我想向用户显示一个确认或不确认页面。为此,我使用了如下重定向功能:
@Get('confirm/:username/:id/:token')
@Redirect('127.0.0.1', 200)
async confirmEmail(
@Param('username') username: string,
@Param('id') id: number,
@Param('token') token: string,
) {
this._logger.setMethod(this.confirmEmail.name);
const url = await this._authService.confirmEmail(username, id, token);
return { url: url };
}
当我执行rdirect函数时,用户会显示以下页面:
OK. Redirecting to http://127.0.0.1:4200/register/registering-ok
他必须点击此链接才能显示确认页面。这是一种没有这个中间页和直接的最终页的方式吗?
谢谢你的评论。
您必须获取响应的实例并在其上调用重定向
以下是示例:
import { Response } from 'express';
import { Res } from '@nestjs/common';
...
@Get('confirm/:username/:id/:token')
async confirmEmail(
@Param('username') username: string,
@Param('id') id: number,
@Param('token') token: string,
@Res() res: Response
) {
this._logger.setMethod(this.confirmEmail.name);
const url = await this._authService.confirmEmail(username, id, token);
res.redirect(url);
}