public async Task <IActionResult> Login(UserForLoginDtos userForLoginDtos) { var userFromRepo = await _repo.Login(userForLoginDtos.Username.ToLower(), userForLoginDtos.Password); if (userFromRepo == null) { return(Unauthorized()); // to not give them hint that this user exists but the password is incorrect cause they can try brute force password } //we will build up a token will contain user id and user's username 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); //it takes security key weve created above 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) })); }
public async Task <IActionResult> Login(UserForLoginDtos userforlogindtos) { var userformrep = await _repo.Login(userforlogindtos.Username, userforlogindtos.Password); if (userformrep == null) { return(Unauthorized()); } var clams = new[] { new Claim(ClaimTypes.NameIdentifier, userformrep.Id.ToString()), new Claim(ClaimTypes.Name, userformrep.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(clams), Expires = DateTime.Now.Date.AddDays(1), SigningCredentials = creds }; var tokenhander = new JwtSecurityTokenHandler(); var token = tokenhander.CreateToken(tokendescriptor); return(Ok(new { token = tokenhander.WriteToken(token) })); }
public async Task <IActionResult> Login(UserForLoginDtos userForLoginDtos) { var userForLogin = await _authbusiness.Login(userForLoginDtos.Username.ToLower(), userForLoginDtos.Password); if (userForLogin.Token == null) { return(Unauthorized()); } return(Ok(new { token = userForLogin.Token })); }
public async Task <IActionResult> Login(UserForLoginDtos userForLoginDto) { var userFromRepo = await _repo.Login(userForLoginDto.Email, userForLoginDto.Password); if (userFromRepo == null) { return(Unauthorized()); } var token = GenerateToken(userFromRepo.Name, userFromRepo.Role.RoleName); var user = _mapper.Map <UserForReturnDtos>(userFromRepo); return(Ok(new { token, user })); }
public async Task <IActionResult> Login(UserForLoginDtos userForLogin) { var userForRepo = await _repo.Login(userForLogin.Username.ToLower(), userForLogin.Password); if (userForRepo == null) { return(Unauthorized()); } //create claims from IdUser And NameUser var claims = new [] { new Claim(ClaimTypes.NameIdentifier, userForRepo.Id.ToString()), new Claim(ClaimTypes.Name, userForRepo.Username) }; //Generate Key For create credencials var key = new SymmetricSecurityKey(Encoding.UTF8 .GetBytes(_config.GetSection("AppSettings:Token").Value)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); // create description gor tokens var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = creds }; //create the token for the client var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); var user = _mapper.Map <UserForListDto> (userForRepo); return(Ok( new { token = tokenHandler.WriteToken(token), user } )); }
public async Task <IActionResult> Login(UserForLoginDtos userForLoginDtos) { //throw new System.Exception("Custom exception..."); // Validation here userForLoginDtos.Username = userForLoginDtos.Username.ToLower(); var userFromRepo = await _repo.Login(userForLoginDtos.Username, userForLoginDtos.Password); if (userFromRepo == null) { return(Unauthorized()); } var claims = new[] { new Claim(ClaimTypes.NameIdentifier, userFromRepo.Id.ToString()), new Claim(ClaimTypes.Name, userFromRepo.Username.ToString()) }; var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = System.DateTime.Now.AddDays(1), SigningCredentials = creds }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(Ok(new { token = tokenHandler.WriteToken(token) } )); }
public async Task <IActionResult> Login(UserForLoginDtos model) { //throw new Exception ("Computer Says No"); var userFromRepo = await _repo.Login(model.Username.ToLower(), model.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.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); var user = _mapper.Map <UserForListDto>(userFromRepo); return(Ok(new { token = tokenHandler.WriteToken(token), user })); }
public async Task <IActionResult> Login([FromBody] UserForLoginDtos userlogin) { // throw new Exception("Computer says no!"); if (!string.IsNullOrEmpty(userlogin.Username)) { userlogin.Username = userlogin.Username.ToLower(); } var userAwait = await _repo.Login(userlogin.Username, userlogin.Password); if (userAwait == null) { return(BadRequest("User does not exist!")); } userlogin.IPAddress = HttpContext.Connection.RemoteIpAddress.ToString(); _repo.ActivityLog(userAwait.UserID, userlogin.IPAddress); //profile info // var profile = await _repo.Profile(userAwait.PersonID); //generate tokens var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_config.GetSection("AppSettings:token").Value); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.NameIdentifier, userAwait.UserID.ToString()), new Claim(ClaimTypes.Name, userAwait.PasswordReset.ToString()), }), Expires = DateTime.Now.AddDays(1), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha512Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var tokenString = tokenHandler.WriteToken(token); return(Ok(tokenString)); }