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)
            }));
        }
Example #2
0
        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
            }));
        }
Example #4
0
        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
            }));
        }
Example #5
0
        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
            }

                       ));
        }
Example #6
0
        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)
            }
                      ));
        }
Example #7
0
        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
            }));
        }
Example #8
0
        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));
        }