public async Task <IActionResult> Login(UserForRegisterForDto userForRegisterForDto) { var userFromRepo = await _repo.Loggin(userForRegisterForDto.UserName.ToLower(), userForRegisterForDto.Password); if (userForRegisterForDto == null) { return(Unauthorized()); } var claims = new[] { new Claim(ClaimTypes.NameIdentifier, userFromRepo.Id.ToString()), new Claim(ClaimTypes.Name, userFromRepo.UserName) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescription = new SecurityTokenDescriptor() { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = creds }; var tokenHandeler = new JwtSecurityTokenHandler(); var token = tokenHandeler.CreateToken(tokenDescription); return(Ok(new { token = tokenHandeler.WriteToken(token) })); }
public async Task <IActionResult> Register(UserForRegisterForDto userForRegisterForDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } userForRegisterForDto.UserName = userForRegisterForDto.UserName.ToLower(); if (await _repo.UserExistsAsync(userForRegisterForDto.UserName)) { return(BadRequest("user name arleady exist")); } var userToCretae = new User() { UserName = userForRegisterForDto.UserName }; var CreatedUser = await _repo.RegisterAsync(userToCretae, userForRegisterForDto.Password); return(StatusCode(201)); }