public async Task <IActionResult> Post(UserAddDTO userAddDTO) { try { if (!ModelState.IsValid) { return(BadRequest(Messages.InvalidModel)); } userAddDTO.Password = _util.HashPassword(userAddDTO.Password); if ((await _user.CheckUserExist(userAddDTO.UserName, userAddDTO.Password, 0))) { return(BadRequest(Messages.UserExist)); } return(Ok(await _user.Post(userAddDTO))); } catch (Exception ex) { return(BadRequest(Messages.GeneralError)); } }
public async Task <IActionResult> Login(LoginDTO loginDTO) { try { if (!ModelState.IsValid) { return(BadRequest(Messages.InvalidModel)); } loginDTO.Password = _util.HashPassword(loginDTO.Password); LoginUserDTO userDTO = await _auth.Login(loginDTO); if (userDTO != null) { var claims = new List <Claim>(); claims.Add(new Claim(ClaimTypes.NameIdentifier, userDTO.UserId.ToString())); claims.Add(new Claim(ClaimTypes.Role, userDTO.RoleName.ToString())); var key = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_configuration.GetSection("JWTSettings:SecretKey").Value)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = creds }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); string tokenValue = tokenHandler.WriteToken(token); userDTO.Token = tokenValue; userDTO.TokenExpireDate = tokenDescriptor.Expires?.ToString("MM/dd/yyyy HH:mm:ss"); return(Ok(userDTO)); } else { return(BadRequest(Messages.LoginFailed)); } } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, "Error occured")); } }