Exemplo n.º 1
0
        public JObject validate_access_token([FromBody] JObject value)
        {
            Boolean validationCheck = false;
            JObject returnObject    = new JObject();

            try
            {
                //String temp = "*****@*****.**";
                //System.Diagnostics.Debug.WriteLine(value["AccessToken"]);
                Classes.Token token = new Classes.Token();
                validationCheck = token.ValidateToken(value["AccessToken"].ToString(), value["Email"].ToString());
                //System.Diagnostics.Debug.WriteLine("VALIDATION CHECK => "+ validationCheck);
                returnObject.Add("AccessValidation", validationCheck);


                if (validationCheck == true)
                {
                    checkarr.checkarrContext checkarrDBContext = new checkarr.checkarrContext();
                    checkarr.UserLog         user1             = checkarrDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == value["Email"].ToString());

                    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);
                    }
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Exception in AuthenticationController" + e);
            }



            return(returnObject);
        }
Exemplo n.º 2
0
        public Boolean Post([FromBody] Classes.User user)
        {
            if (user.Email != null && user.Password != null)
            {
                user.Email = user.Email.ToLower();
                checkarr.checkarrContext registerDBContext = new checkarr.checkarrContext();
                checkarr.UserLog         UserRegister      = registerDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == user.Email);

                if (UserRegister != null)
                {
                    // To be executed when user exists in the DB
                    System.Diagnostics.Debug.Print("> User Exists");
                    return(false);
                }
                else
                {
                    string temp_email;
                    // To be executed when user doesn't exist in the DB
                    UserRegister = new checkarr.UserLog();
                    UserRegister.UserFullname = user.Fullname;
                    UserRegister.UserEmaill   = user.Email;
                    temp_email = user.Email;
                    UserRegister.UserPassword = user.Password;
                    UserRegister.UserSex      = user.Gender;
                    UserRegister.UserReg      = DateTime.UtcNow;
                    UserRegister.Activated    = "F";
                    UserRegister.Disabled     = "F";


                    //                    AuthRepository _authRepository = new AuthRepository(registerDBContext);
                    /* have to make this await */
                    //                 _authRepository.Register(UserRegister, user.Password);

                    //Adding user to the register context and saving that context
                    registerDBContext.UserLog.Add(UserRegister);
                    registerDBContext.SaveChanges();

                    Classes.Mailer currentMailer = new Classes.Mailer();
                    currentMailer.sendWelcomeMail(user.Email);

                    /*
                     * int newUserID;
                     * //
                     * // Id of last user
                     * UserRegister = registerDBContext.UserLog.Last();
                     * if(temp_email == UserRegister.UserEmaill)
                     *  newUserID = UserRegister.IduserLog;
                     * else
                     * {
                     *  UserRegister = registerDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == temp_email);
                     *  newUserID = UserRegister.IduserLog;
                     * }
                     * Classes.CodeGenerator codeGenerator = new Classes.CodeGenerator();
                     * String activationCode = codeGenerator.ActivationCodeGenerator();
                     *
                     * // saving in confirmation code table
                     * checkarr.Confirmationcode confirmationCodeModel = new checkarr.Confirmationcode();
                     * confirmationCodeModel.ConfirmationCode = activationCode;
                     * confirmationCodeModel.ConfirmationType = "ACTIVATION_CODE";
                     * confirmationCodeModel.GeneratedOn = DateTime.UtcNow;
                     * confirmationCodeModel.ExpiryTime = DateTime.UtcNow.AddDays(1);
                     * confirmationCodeModel.Used = "F";
                     * confirmationCodeModel.UserId = newUserID;// have to update user id
                     *
                     * registerDBContext.Confirmationcode.Add(confirmationCodeModel);
                     * registerDBContext.SaveChanges();
                     *
                     *
                     * Classes.Token tokenGenerator = new Classes.Token();
                     * JwtSecurityToken activationToken = tokenGenerator.GenerateActivationToken(newUserID);
                     *
                     *
                     * // sending activation mail
                     * Classes.Mailer currentMailer = new Classes.Mailer();
                     * currentMailer.sendActivationMail(user.Email, new JwtSecurityTokenHandler().WriteToken(activationToken), activationCode);
                     */

                    //System.Diagnostics.Debug.Print("===========================\n");
                    //System.Diagnostics.Debug.Print("Register POST\n");
                    //System.Diagnostics.Debug.Print("===========================\n");
                    //System.Diagnostics.Debug.Print("Fullname: " + user.Fullname + "\n");
                    //System.Diagnostics.Debug.Print("Email: " + user.Email + "\n");
                    //System.Diagnostics.Debug.Print("Password: "******"\n");
                    //System.Diagnostics.Debug.Print("Gender: " + user.Gender + "\n");
                    //System.Diagnostics.Debug.Print("===========================\n");

                    return(true);
                }

                // return false;
            }
            else
            {
                return(false);
            }
        }
        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());
        }
Exemplo n.º 4
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 JObject Account_recovery([FromBody] JObject value)
        {
            JObject returnObject = new JObject();

            try
            {
                checkarr.checkarrContext registerDBContext = new checkarr.checkarrContext();
                checkarr.UserLog         Userr             = registerDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == value["RECOVERY_EMAIL"].ToString());
                // query through database and store email in recovery_email_temp

                if (Userr == null)
                {
                    returnObject.Add("RETURN_CODE", 2);
                    returnObject.Add("RECOVERY_TOKEN", null);
                }

                else if (value["RECOVERY_EMAIL"].ToString() == Userr.UserEmaill)
                {
                    // string gen_recoveryToken_tmp=
                    JwtSecurityToken recoveryToken = new JwtSecurityToken();

                    recoveryToken = new Classes.Token().GenerateRecoveryToken(value["RECOVERY_EMAIL"].ToString());
                    Classes.CodeGenerator recovery_code_temp = new Classes.CodeGenerator();
                    string recoverycode_stringtemp           = recovery_code_temp.RecoveryCodeGenerator();

                    //SAVE recoverycode_stringtemp  TO TABLE CONFIRMATION CODES WITH TYPE "RECOVERY_CODE"
                    checkarr.Confirmationcode newcode = new checkarr.Confirmationcode();
                    newcode.ConfirmationCode = recoverycode_stringtemp;
                    newcode.ConfirmationType = "RECOVERY_CODE";
                    newcode.GeneratedOn      = DateTime.UtcNow;
                    newcode.ExpiryTime       = DateTime.UtcNow.AddDays(1);
                    newcode.Used             = "F";
                    newcode.UserId           = Userr.IduserLog;

                    registerDBContext.Confirmationcode.Add(newcode);
                    registerDBContext.SaveChanges();



                    Classes.Mailer mail_temp_obj = new Classes.Mailer();
                    mail_temp_obj.sendRecoveryMail(value["RECOVERY_EMAIL"].ToString(), new JwtSecurityTokenHandler().WriteToken(recoveryToken), recoverycode_stringtemp);


                    returnObject.Add("RETURN_CODE", 1);
                    returnObject.Add("RECOVERY_TOKEN", new JwtSecurityTokenHandler().WriteToken(recoveryToken));
                }
                else
                {
                    returnObject.Add("RETURN_CODE", 2);
                    returnObject.Add("RECOVERY_TOKEN", null);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("EXCEPTION IN ACCOUNT RECOVERY = " + ex);
                returnObject.Add("RETURN_CODE", 3);
                returnObject.Add("RECOVERY_TOKEN", null);
            }


            /*
             * . RETURN_CODE: 1 = RECOVERY MAIL IS SENT
             *  . RETURN_CODE: 2 = RECOVERY MAIL DOES NOT EXIST
             *  . RETURN_CODE: 3 = EXCEPTION
             * */
            return(returnObject);
        }