public async Task <ActionResult> Login(UserForLoginDto userForLoginDto, byte[] encoding) { var userfromRepo = await _repo.Login(userForLoginDto.username.ToLower(), userForLoginDto.password); if (userfromRepo == null) { return(Unauthorized()); } var calims = 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.HmacSha512); var tokenDescipror = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(calims), Expires = DateTime.Now.AddDays(1), SigningCredentials = creds }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescipror); return(Ok(new{ token = tokenHandler.WriteToken(token) })); }
public async Task <IActionResult> login(UserForLoginDto userForLoginDto) { /* try * {*/ //throw new Exception("Api Says nooooo"); var userFromRepo = await _repo.Login(userForLoginDto.UserName, userForLoginDto.Password); if (userFromRepo == 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.HmacSha512); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = creds }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); var user = _mapper.Map <UserForListDto>(userFromRepo); return(Ok(new { token = tokenHandler.WriteToken(token), user })); /* } * catch * { * return StatusCode(500,"Api Is Vary Tired"); * } */ }