Nest js как перенаправить без промежуточной ссылки - PullRequest
0 голосов
/ 07 мая 2020

В моем маленьком приложении я хочу проверить электронную почту пользователя. Для этого я отправляю пользователю электронное письмо со ссылкой. Пользователь нажимает на ссылку, и я хотел бы показать пользователю страницу подтверждения или нет. Для этого я использовал функцию перенаправления, как показано ниже:

  @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

Он должен нажать на эту ссылку для отображения страницы подтверждения. Это способ не иметь эту промежуточную страницу, а непосредственно последнюю страницу?

Спасибо за ваши комментарии.

1 Ответ

1 голос
/ 07 мая 2020

Вы должны получить экземпляр Response и перенаправить на него вызов

Вот пример:

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