Example #1
0
        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));
        }
Example #2
0
        /// <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
            });
        }