public async Task <IActionResult> Login(EmployeeForLogin userForLogin) { var userFromRepo = await _logic.Login(userForLogin.Username.ToLower(), userForLogin.Password.ToLower()); if (userFromRepo == null) { return(Unauthorized()); } var claims = new[] { new Claim(ClaimTypes.NameIdentifier, userFromRepo.EmployeeID.ToString()), new Claim(ClaimTypes.Name, userFromRepo.Username), new Claim(ClaimTypes.Actor, "employee") }; var key = new SymmetricSecurityKey(Encoding.UTF8. GetBytes(_config.GetSection("AppSettings:Token").Value)); var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = credentials }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); var empToReturn = _mapper.Map <EmployeeDTO>(userFromRepo); return(Ok(new { token = tokenHandler.WriteToken(token), user = empToReturn })); }
public async Task <IActionResult> Login(AuthEmployee employee) { var employeeDb = await _logic.Login(employee.Username.ToLower(), employee.Password.ToLower()); if (employeeDb == null) { return(Unauthorized()); } var claims = new[] { new Claim(ClaimTypes.NameIdentifier, employeeDb.EmployeeID.ToString()), new Claim(ClaimTypes.Name, employeeDb.Username) }; var key = new SymmetricSecurityKey(Encoding.UTF8. GetBytes(_config.GetSection("AppSettings:Token").Value)); var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = credentials }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(Ok(new { token = tokenHandler.WriteToken(token), employee = employeeDb })); }