public TokenVO ValidateCredentials(TokenVO token)
        {
            var accessToken  = token.AccessToken;
            var refreshToken = token.RefreshToken;

            var principal = _tokenService.GetPrincipalFromExpiredToken(accessToken);

            var userName = principal.Identity.Name;

            var user = _repository.ValidateCredentials(userName);

            if (user == null ||
                user.RefreshToken != refreshToken ||
                user.RefreshTokenExpiryTime.Value.Date < DateTime.Now.Date)
            {
                return(null);
            }

            accessToken  = _tokenService.GenerateAccessToken(principal.Claims);
            refreshToken = _tokenService.GenerateRefreshToken();

            user.RefreshToken = refreshToken;

            _repository.RefreshUserInfo(user);

            DateTime createDate = DateTime.Now;
            DateTime expireDate = createDate.AddMinutes(_configuration.Minutes);

            return(new TokenVO(
                       true,
                       createDate.ToString(DATE_FORMAT),
                       expireDate.ToString(DATE_FORMAT),
                       accessToken,
                       refreshToken));
        }
コード例 #2
0
        public TokenVO ValidateCredentials(TokenVO token)
        {
            var accessToken  = token.AcessToken;
            var refreshToken = token.RefreshToken;

            var principal = _tokenService.GetPrincipalFromExpiredToken(accessToken);

            if (principal.Identity != null)
            {
                var username = principal.Identity.Name;

                var user = _repository.ValidateCredentials(username);

                accessToken  = _tokenService.GenerateAccessToken(principal.Claims);
                refreshToken = _tokenService.GenerateRefreshToken();

                user.RefreshToken = refreshToken;

                _repository.RefreshUserInfo(user);

                DateTime createDate     = DateTime.Now;
                DateTime expirationDate = createDate.AddMinutes(_configuration.Minutes);

                //Setting Token Info, if he reaches this point, the user is authenticated.
                return(new TokenVO(
                           true,
                           createDate.ToString(DATE_FORMAT),
                           expirationDate.ToString(DATE_FORMAT),
                           accessToken,
                           refreshToken
                           ));
            }

            return(null);
        }
コード例 #3
0
        public TokenVO ValidateCredentials(TokenVO token)
        {
            //gerar token
            var accessToken  = token.AcessToken;
            var refreshToken = token.RefreshToken;

            var principal = _service.GetPrincipalFromExpiredToken(accessToken);
            var username  = principal.Identity.Name;
            var user      = _repository.ValidateCredentials(username);

            if (user == null || user.RefreshToken != refreshToken ||
                user.RefreshTokenExpiryTime >= DateTime.Now)
            {
                return(null);
            }

            accessToken  = _service.GenerateAccessToken(principal.Claims);
            refreshToken = _service.GenerateRefreshToken();

            user.RefreshToken = refreshToken;

            //definir quando foi gerado token e quando vai expirar
            DateTime createDate     = DateTime.Now;
            DateTime expirationDate = createDate.AddMinutes(_configuration.Minutes);

            //setando informações do token e retornando para o controller
            return(new TokenVO(
                       true,
                       createDate.ToString(DATE_FORMAT),
                       expirationDate.ToString(DATE_FORMAT),
                       accessToken,
                       refreshToken
                       ));
        }
コード例 #4
0
        public TokenVO ValidateCredentials(TokenVO token)
        {
            var accessToken  = token.AccessToken;
            var refreshToken = token.RefreshToken;

            var principal = _tokenService.GetPrincipalFromExpiredToken(accessToken);
            var userName  = principal.Identity.Name; // pega coluna name do banco

            var user = _repository.ValidateCredentials(userName);

            if (user == null ||
                user.RefreshToken != refreshToken ||
                user.RefreshTokenExpiryTime <= DateTime.Now)
            {
                return(null);
            }

            accessToken  = _tokenService.GenerateAccessToken(principal.Claims);
            refreshToken = _tokenService.GenerateRefreshToken();

            user.RefreshToken = refreshToken;

            _repository.RefreshUserInfo(user);

            DateTime createDate     = DateTime.Now;
            DateTime expirationDate = createDate.AddMinutes(_configuration.Minutes);

            return(new TokenVO(
                       accessToken,
                       refreshToken
                       ));
        }
コード例 #5
0
        public TokenVO ValidateCredentials(TokenVO token)
        {
            var principal = _tokenService.GetPrincipalFromExpiredToken(token.AccessToken);
            var userName  = principal.Identity.Name;
            var user      = _repo.ValidateCredentials(userName);

            if (user == null ||
                user.RefreshToken != token.RefreshToken ||
                user.RefreshTokenExpiryTime <= DateTime.Now)
            {
                return(null);
            }

            token.AccessToken  = _tokenService.GenerateAccessToken(principal.Claims);
            token.RefreshToken = _tokenService.GenerateRefreshToken();

            user.RefreshToken = token.RefreshToken;

            _repo.RefreshUserInfo(user);

            var createDate     = DateTime.Now;
            var expirationDate = createDate.AddMinutes(_tokenConfig.Minutes);

            return(new TokenVO(
                       true,
                       createDate.ToString(DATE_FORMAT),
                       expirationDate.ToString(DATE_FORMAT),
                       token.AccessToken,
                       token.RefreshToken
                       ));
        }
コード例 #6
0
        public IActionResult Refresh([FromBody] TokenVO tokenVO)
        {
            if (tokenVO == null)
            {
                return(BadRequest("Invalid client request"));
            }
            var token = _loginBusiness.ValidateCredentials(tokenVO);

            if (token == null)
            {
                return(BadRequest("Invalid client request"));
            }
            return(Ok(token));
        }
コード例 #7
0
        public IActionResult Refresh([FromBody] TokenVO tokenVO)
        {
            if (tokenVO == null)
            {
                return(BadRequest("Invalid Request"));
            }
            var loginConfirm = LoginBusiness.ValidateCredencials(tokenVO);

            if (loginConfirm == null)
            {
                return(BadRequest("Invalid Request"));
            }
            return(Ok(loginConfirm));
        }
コード例 #8
0
        public IActionResult Refresh([FromBody] TokenVO tokenVO)
        {
            if (tokenVO == null)
            {
                return(BadRequest("Nullable user"));
            }
            var token = _business.ValidateCredentials(tokenVO);

            if (token == null)
            {
                return(Unauthorized());
            }
            return(Ok(token));
        }
コード例 #9
0
        public IActionResult Refresh(TokenVO token)
        {
            if (token == null)
            {
                return(BadRequest("Invalid client request"));
            }

            var newToken = _business.ValidateCredentials(token);

            if (newToken == null)
            {
                return(BadRequest("Invalid client request"));
            }

            return(Ok(newToken));
        }
コード例 #10
0
        public IActionResult Refresh([FromBody] TokenVO tokenVo)
        {
            if (tokenVo == null)
            {
                return(BadRequest("Requisição inválida!"));
            }

            var token = _loginBusiness.ValidaCredenciais(tokenVo);

            if (token == null)
            {
                return(BadRequest("Requisição inválida!"));
            }

            return(Ok(token));
        }
コード例 #11
0
 public IActionResult Refresh([FromBody] TokenVO token)
 {
     if (token is null)
     {
         return(BadRequest("Invalid client request"));
     }
     if (!string.IsNullOrWhiteSpace(token.AccessToken) && !string.IsNullOrWhiteSpace(token.RefreshToken))
     {
         var tokenVar = _loginBusiness.ValidateCredentials(token);
         if (tokenVar == null)
         {
             return(Unauthorized("Unauthorized client request"));
         }
         return(Ok(tokenVar));
     }
     else
     {
         return(BadRequest("Invalid client request"));
     }
 }
コード例 #12
0
        public TokenVO ValidateCredentials(TokenVO token)
        {
            var accessToken  = token.AccessToken;
            var refreshToken = token.RefreshToken;

            var principal = _service.GetPrincipalFromExpiryToken(accessToken);
            var userName  = principal.Identity.Name;
            var user      = _repository.ValidateCredentials(userName);

            if (user != null ||
                user.RefreshToken != refreshToken ||
                user.RefreshTokenExpiryTime <= DateTime.Now)
            {
                return(null);
            }

            accessToken  = _service.GenerateAccessToken(principal.Claims);
            refreshToken = _service.GenerateRefreshToken();

            user.RefreshToken           = refreshToken;
            user.RefreshTokenExpiryTime = DateTime.Now.AddDays(_configuration.DaysToExpiry);

            DateTime createDate     = DateTime.Now;
            DateTime expirationDate = createDate.AddMinutes(_configuration.Minutes);

            var auxUser = new UserVO();

            auxUser.Password = user.Password;
            auxUser.UserName = user.UserName;

            _repository.ValidateCredentials(auxUser);

            return(new TokenVO(
                       true,
                       createDate.ToString(DATE_FORMAT),
                       expirationDate.ToString(DATE_FORMAT),
                       accessToken,
                       refreshToken
                       ));
        }
        public TokenVO ValidateCredentials(TokenVO token)
        {
            var accessToken  = token.AccessToken;
            var refreshToken = token.RefreshToken;

            var principal = _tokenService.GetPrincipalFromExpiredToken(accessToken);
            var username  = principal.Identity.Name;

            var user = _userRepository.ValidateCredenctials(username);

            if (user == null || user.RefreshToken != refreshToken ||
                user.RefreshTokenExpiryTime <= DateTime.Now)
            {
                return(null);
            }

            accessToken  = _tokenService.GenerateAcessToken(principal.Claims);
            refreshToken = _tokenService.GenerateRefreshToken();

            user.RefreshToken = refreshToken;

            _userRepository.RefreshUserInfo(user);

            // tempo de expiração deste token
            DateTime createDate     = DateTime.Now;
            DateTime expirationDate = createDate.AddMinutes(_tokenConfiguration.Minutes);

            // gerando dados que serão passados  para o controller
            return(new TokenVO(
                       true,
                       createDate.ToString(DATE_FORMAT),
                       expirationDate.ToString(DATE_FORMAT),
                       accessToken,
                       refreshToken
                       ));
        }