/// <summary>
/// 修改当前登录用户密码
/// </summary>
/// <returns></returns>
[AbpAuthorize]
public async Task ChangePassword(ChangePasswordInput input)
{
input.OldPassword = input.OldPassword.Trim();
input.NewPassword = input.NewPassword.Trim();
//判断旧密码是否正确
if (string.IsNullOrWhiteSpace(input.OldPassword) || string.IsNullOrWhiteSpace(input.NewPassword))
{
throw new UserFriendlyException("密码不能为空");
}
if (input.OldPassword == input.NewPassword)
{
throw new UserFriendlyException("新旧密码不能相同");
}
//获取abp用户
var user = await _userManager.GetUserByIdAsync(AbpSession.UserId.Value);
//判断新密码是否正确
var result = _passwordHasher.VerifyHashedPassword(user, user.Password, input.OldPassword);
if (result == PasswordVerificationResult.Failed)
{
throw new UserFriendlyException("旧密码错误");
}
//新密码hash
var hash = _passwordHasher.HashPassword(user, input.NewPassword);
user.Password = hash;
await _userManager.UpdateAsync(user);
}