У меня есть сайт с 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 };
}