//[Produces(typeof(Models.Users))] public async Task <IActionResult> Register([FromBody] DTO.UserForRegisterDTO userForRegister) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } bool bDuplicateaUserName = await _usersRepository.UserExists(userForRegister.userName); if (bDuplicateaUserName) { return(StatusCode(400, "UserName is already exists")); } var user = new Users { UserName = userForRegister.userName, Email = userForRegister.email }; user = await _usersRepository.Register(user, userForRegister.password); var results = new ObjectResult(user) { StatusCode = (int)HttpStatusCode.OK }; return(results); }
// [Produces(typeof(Models.Users))] public async Task <IActionResult> Login([FromBody] DTO.UserForRegisterDTO userForRegister) { // if (!ModelState.IsValid) // { // return BadRequest(ModelState); // } var dbUser = await _usersRepository.Login(userForRegister.userName.ToLower(), userForRegister.password); if (dbUser != null) { var claims = new[] { new Claim(ClaimTypes.NameIdentifier, dbUser.UserId.ToString()), new Claim(ClaimTypes.Name, dbUser.UserName), }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").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); return(Ok(new { token = tokenHandler.WriteToken(token) })); } else { return(StatusCode(500, "Failed to login")); } }