Как построить маршрут, соответствующий угловым маршрутам со стороны сервера? - PullRequest
1 голос
/ 02 апреля 2019

У меня есть сайт с Angular 7 и ASP.net Core 2.2.Я делаю стандартные функции «EmailConfirmed», «ResetPasswordRequest» и «ResetPasswordConfirmed».Все они имеют свои маршруты, определенные в app.route.ts, как показано ниже:

{ path: 'email-confirmed', component: AccountEmailConfirmedComponent },
{ path: 'reset-password-request', component: AccountResetPasswordRequestComponent },
{ path: 'reset-password-confirmed', component: AccountResetPasswordConfirmedComponent }

Теперь на стороне сервера я должен отправить электронное письмо с соответствующим шаблоном и ссылками.

КодЯ хорошо поработал, но URL обратного вызова должен соответствовать угловому маршруту, которого здесь нет.

Я хотел бы знать, как лучше создать URL обратного вызова для этого случая

    public async Task<IActionResult> ResetPasswordRequest(string email)
    {
         var user = await _userService._manager.FindByNameAsync(email);
         if (user != null && await _userService._manager.IsEmailConfirmedAsync(user))
            {
               string token = await _userService._manager.GeneratePasswordResetTokenAsync(user);
               // build from angular route dynamically....
               string angularCallbackUrl = "https://localhost:44350/reset-password-confirmed";

string callbackUrl = this._urlHelper.Action("ResetPassword", "Account", new ConfirmTokenModel(user.Id, token), protocol: this.HttpContext.Request.Scheme);

                        await this._emailService.SendAsync(
                            to: user.Email,
                            subject: "Reset password",
                            body: "Reset your password by clicking this link: <a href=\"" + callbackUrl + "\">link</a>");

                        return new OkObjectResult("success");
                    }

                    return new ObjectResult("failed") { StatusCode = 403 };
                }

1 Ответ

0 голосов
/ 02 апреля 2019

Я бы предложил создать службу http, к которой могут обращаться ваши 3 компонента маршрута, или использовать 1 компонент, который используется всеми тремя маршрутами.Вы будете использовать вызов функции http, чтобы отправить запрос на ваш внутренний сервер.После этого вызова функции http будет ожидаться ответ, который, как я предполагаю, вы захотите использовать для ответа по указанному маршруту.Этим компонентам маршрута потребуется доступ к ответу обратно с сервера, поэтому либо вы помещаете вызов функции http в службу, к которой имеют доступ все 3 компонента маршрута, либо у вас есть вызов функции http в 1 компоненте, который используется всеми 3 маршрутами.,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...