예제 #1
0
        public JObject refresh_access_token([FromBody] JObject value)
        {
            JObject returnObject = new JObject();

            try
            {
                String REFRESH_TOKEN = value["refresh_token"].ToString();
                String EMAIL         = value["email"].ToString();


                Classes.Token currentTokenObj = new Classes.Token();
                if (currentTokenObj.ValidateRefreshToken(REFRESH_TOKEN, EMAIL))
                {
                    // refresh token is valid

                    String new_refresh_token = new JwtSecurityTokenHandler().WriteToken(currentTokenObj.GenerateRefreshToken(EMAIL));

                    currentTokenObj.GenerateToken(EMAIL);
                    String new_access_token = new JwtSecurityTokenHandler().WriteToken(currentTokenObj.token);
                    String email            = EMAIL;



                    checkarr.checkarrContext checkarrDBContext = new checkarr.checkarrContext();
                    checkarr.UserLog         user1             = checkarrDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == EMAIL);

                    if (user1 != null)
                    {
                        String activation_check = user1.Activated;

                        if (activation_check == "T")
                        {
                            returnObject.Add("account_activated", true);
                        }
                        else
                        {
                            returnObject.Add("account_activated", false);
                        }


                        int user_id = user1.IduserLog;
                        returnObject.Add("user_id", user_id);

                        String user_email = user1.UserEmaill;
                        returnObject.Add("user_email", user_email);
                    }

                    returnObject.Add("RETURN_CODE", 1); // refresh token valid
                    returnObject.Add("NEW_REFRESH_TOKEN", new_refresh_token);
                    returnObject.Add("NEW_ACCESS_TOKEN", new_access_token);
                    returnObject.Add("EMAIL", email);
                }
                else
                {
                    // refresh token is not valid
                    returnObject.Add("RETURN_CODE", 2); // refresh token is not valid
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Exception in refresh_access_token :" + e);
                returnObject.Add("RETURN_CODE", 3); // exception has occured
            }

            return(returnObject);
        }
        public IActionResult Post([FromBody] Classes.User user)
        {
            try
            {
                if (user != null)
                {
                    // Initializing New DBContext

                    user.Email = user.Email.ToLower();

                    checkarr.checkarrContext loginDBContext = new checkarr.checkarrContext();
                    checkarr.UserLog         UserLogin      = loginDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == user.Email);

                    if (UserLogin == null)
                    {
                        System.Diagnostics.Debug.Print("** USER NOT FOUND");
                        return(Ok(new
                        {
                            OK = 3,
                            Issued = false,
                            Token = "",
                            Type = "None",
                            Generation = "NA",
                            Expiration = "NA",
                            Issuer = "http://www.checkarr.com"
                        }));
                    }
                    else if (user.Password == UserLogin.UserPassword)
                    {
                        // To be executed whe login is successful

                        Classes.Token CurrentToken = new Classes.Token();
                        CurrentToken.GenerateToken(UserLogin.UserEmaill);


                        JwtSecurityToken refreshToken = CurrentToken.GenerateRefreshToken(UserLogin.UserEmaill);
                        // have to save details in database



                        return(Ok(new
                        {
                            Ok = 1,
                            Issued = true,
                            Token = new JwtSecurityTokenHandler().WriteToken(CurrentToken.token),
                            refresh_token = new JwtSecurityTokenHandler().WriteToken(refreshToken),
                            activation_status = UserLogin.Activated,
                            user_id = UserLogin.IduserLog,
                            user_email = UserLogin.UserEmaill
                        }));
                    }
                    else
                    {
                        // To be executed the login fails
                        return(Ok(new
                        {
                            OK = 2,
                            Issued = false,
                            Token = "Not issued",
                            Type = "None",
                            Generation = "NA",
                            Expiration = "NA",
                            Issuer = "http://www.checkarr.com"
                        }));
                    }
                }
                else
                {
                    return(Unauthorized());
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.Print(e.ToString());
            }
            return(Unauthorized());
        }