public async Task <SingleResult <AccountPublicDto> > Authorize(AccountAuthorizeDto model) { var result = new SingleResult <AccountPublicDto>(); var jwt = model.Token.Replace("Bearer ", ""); var userToken = _context.UserTokens.FirstOrDefault(x => x.UserId == model.Id && x.Value == jwt); var isTokenLive = CheckTokenExpiration(jwt); if (!isTokenLive) { result.Message = "JWT token has been expired"; return(result); } var user = await _userManager.Users.Include(x => x.ReservedBooks).FirstOrDefaultAsync(x => x.Id == model.Id); var roles = await GetUserRoles(user); result.IsSuccessful = true; result.Data = _mapper.Map <ApplicationUser, AccountPublicDto>(user); result.Data.AuthorizationToken = jwt; result.Data.Roles = roles; return(result); }
public async Task <IActionResult> Authorize([FromBody] AccountAuthorizeDto model) { if (!ModelState.IsValid) { var badResult = new OperationResult(); badResult.Message = string.Join("; ", ModelState.Values .SelectMany(x => x.Errors) .Select(x => x.ErrorMessage)); return(new OkObjectResult(badResult)); } var result = await _accountService.Authorize(model); return(new OkObjectResult(result)); }