Nestjs如何在没有中间链接的情况下重定向



在我的小应用程序中,我想验证用户电子邮件。为此,我向用户发送了一封带有链接的电子邮件。用户点击链接,我想向用户显示一个确认或不确认页面。为此,我使用了如下重定向功能:

@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);
}

最新更新