public virtual async Task <IActionResult> GetResetPasswordAsync([FromBody][Required] GetResetPassword getResetPassword, CancellationToken cancellationToken = default) { var resetPassword = await this.SecurityManager .GetResetPasswordAsync(getResetPassword, cancellationToken); return(this.Ok(resetPassword)); }
/// <summary> /// Generates an reset password token for a user. /// </summary> /// <param name="getResetPassword">The <see cref="GetResetPassword"/>.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/>.</param> /// <returns>The <see cref="ResetPassword"/>.</returns> public virtual async Task <ResetPassword> GetResetPasswordAsync(GetResetPassword getResetPassword, CancellationToken cancellationToken = default) { if (getResetPassword == null) { throw new ArgumentNullException(nameof(getResetPassword)); } var user = await this.UserManager .FindByEmailAsync(getResetPassword.Email); if (user == null) { throw new NullReferenceException(nameof(user)); } var isEmailConfirm = await this.UserManager .IsEmailConfirmedAsync(user); if (!isEmailConfirm) { return(new ResetPassword()); } var code = await this.UserManager .GeneratePasswordResetTokenAsync(user); return(new ResetPassword { Email = user.Email, Code = code }); }