Example #1
0
        //return valid token for api
        public static string CheckToken(LoginModel loginModel)
        {
            var TokenString = "";

            //if token is null try to get a new one
            if (ClientToken == null)
            {
                PrinterClass.printErrorMessage("token is empty, get a new one: " + ClientToken);
                TokenString = GetNewToken(loginModel.LoginEmail, loginModel.LoginPassword);
            }
            //token not null, check if expired
            else if (ClientToken != null)
            {
                var WebToken       = new JwtSecurityToken(ClientToken);
                var ExpirationTime = WebToken.ValidTo;
                var CreatedTime    = WebToken.ValidFrom;
                var CurrentTime    = new DateTime();
                if (CurrentTime.IsBetween(CreatedTime, ExpirationTime))
                {
                    PrinterClass.printDebugMessage("the token is still valid : " + WebToken);
                    TokenString = ClientToken;
                }
                else
                {
                    PrinterClass.printErrorMessage("this token has expired");
                    TokenString = GetNewToken(loginModel.LoginEmail, loginModel.LoginPassword);
                }
            }
            PrinterClass.printDebugMessage("returning token value: " + TokenString);
            return(TokenString);
        }
Example #2
0
        //get token from api
        private static string GetNewToken(string email, string password)
        {
            var TokenResponse = "";
            //setup rest request
            RestRequest AuthRequest = new RestRequest("/authentication", Method.POST);

            AuthRequest.AddParameter("email", email);
            AuthRequest.AddParameter("password", password);
            AuthRequest.AddParameter("strategy", "local");
            AuthRequest.RequestFormat = DataFormat.Json;
            //get response
            var AuthResponse = RestClient.Execute <TokenResponse>(AuthRequest);
            //check response
            var StatusCode = AuthResponse.StatusCode;

            //return generic error
            if (StatusCode == UnauthorizedCode)
            {
                TokenResponse = "error";
            }
            else if (StatusCode == CreatedCode)
            {
                //get token from response
                string content = AuthResponse.Data.AccessToken;
                ClientToken   = content;
                TokenResponse = content;
                //add token
                RestClient.Authenticator = new JwtAuthenticator(ClientToken);
                PrinterClass.printDebugMessage("new token created and saved: " + ClientToken);
            }
            return(TokenResponse);
        }
Example #3
0
        //register new user
        public static bool RegisterNewUser(RegisterModel registerModel)
        {
            //setup the request
            RestRequest CreateUserRequest = new RestRequest("/users", Method.POST)
            {
                RequestFormat = DataFormat.Json
            };

            CreateUserRequest.AddParameter("email", registerModel.UserEmail);
            CreateUserRequest.AddParameter("password", registerModel.UserPassword);
            //get response
            var Response = RestClient.Execute(CreateUserRequest);
            //check response status code
            var StatusCode = Response.StatusCode;

            PrinterClass.printDebugMessage("staus code = " + StatusCode);
            if (StatusCode == CreatedCode)
            {
                //new user created, add user to person table as well
                RestRequest CreatePersonRequest = new RestRequest("/person", Method.POST);
                CreatePersonRequest.AddParameter("firstName", registerModel.FirstName);
                CreatePersonRequest.AddParameter("lastName", registerModel.LastName);
                CreatePersonRequest.AddParameter("email", registerModel.UserEmail);
                //set token
                string token = GetNewToken(registerModel.UserEmail, registerModel.UserPassword);
                RestClient.Authenticator = new JwtAuthenticator(token);
                //get response
                var PersonResponse = RestClient.Execute(CreatePersonRequest);
                //check response code
                var PersonStatusCode = PersonResponse.StatusCode;
                if (PersonStatusCode == CreatedCode)
                {
                    //person has been added to database, send result
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else if (StatusCode == InternalErrorCode)
            {
                //error adding new user
                return(false);
            }
            return(false);
        }