我正在构建一个 .net core 2 Identity 应用程序。它使用 JWT 令牌作为 Vuejs 前端。
我正在编写更新密码控制器,该控制器首先检查令牌,然后使用更改密码,ChangePasswordAsync但我不断收到响应:
{Failed : PasswordMismatch}.
我的控制器代码如下。我已经成功地编写了登录和注册控制器,但没有成功。登录用户ctrustUser成功返回,然后我使用该数据传递到ChangePasswordAsync登录用户数据中。请你能帮我。
[Authorize(Policy = "ApiUser")]
[Route("api/[controller]/[action]")]
public class AccountsEditController : Controller
{
private readonly ClaimsPrincipal _caller;
private readonly ApplicationCtrustUsersDbContext _appDbContext;
private readonly UserManager<AppAdminUser> _userManager;
private readonly IMapper _mapper;
public AccountsEditController(UserManager<AppAdminUser> userManager, ApplicationCtrustUsersDbContext appDbContext, IHttpContextAccessor httpContextAccessor, IMapper mapper)
{
_userManager = userManager;
_caller = httpContextAccessor.HttpContext.User;
_appDbContext = appDbContext;
_mapper = mapper;
}
// POST api/accountsedit/updatepassword
[HttpPost]
public async Task<IActionResult>UpdatePassword([FromBody]UpdatePasswordViewModel model)
{
// simulate slightly longer running operation to show UI state change
await Task.Delay(250);
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
// retrieve the user info
var userId = _caller.Claims.Single(c => c.Type == "id");
var ctrustUser = await _appDbContext.CtrustUser.Include(c => c.Identity).SingleAsync(c => c.Identity.Id == userId.Value);
AppAdminUser userIdentity = new AppAdminUser();
}
}
天涯尽头无女友
小唯快跑啊
相关分类