public JObject activate_user_account([FromBody] JObject value) { JObject returnObj = new JObject(); try { int USER_ID = int.Parse(value["USER_ID"].ToString()); String ACTIVATION_CODE = value["ACTIVATION_CODE"].ToString(); String ACTIVATION_TOKEN = value["ACTIVATION_TOKEN"].ToString(); Classes.Token tokenObj = new Classes.Token(); if (tokenObj.ValidateActivationToken(ACTIVATION_TOKEN, USER_ID)) { // activation token is valid /* * * MSK SEE IF ACTIVATION CODE MATCH IN THE TABLE USING USER_ID * * IF ACTIVATION CODE EXIST AND VALID THEN ACTIVATE THE ACCOUNT OF THE USER USING USER_ID * * WHEN ACCOUNT IS ACTIVATED. REMOVE THE CURRENT ACTIVATION_CODE FROM THE TABLE * * * */ checkarr.Confirmationcode code1 = homeDBContext.Confirmationcode.FirstOrDefault(i => i.UserId == USER_ID && i.ConfirmationCode == ACTIVATION_CODE && i.ConfirmationType == "ACTIVATION_CODE"); if (code1 != null) { checkarr.UserLog user1 = homeDBContext.UserLog.FirstOrDefault(i => i.IduserLog == code1.UserId); user1.Activated = "T"; homeDBContext.Confirmationcode.Remove(code1); homeDBContext.SaveChanges(); returnObj.Add("RETURN_CODE", 1); // account is activated } else { returnObj.Add("RETURN_CODE", 4); // code not found } } else { returnObj.Add("RETURN_CODE", 2); // activation token is not valid } } catch (Exception e) { System.Diagnostics.Debug.WriteLine("Exception in activate_user_account: " + e); returnObj.Add("RETURN_CODE", 3); // exception } return(returnObj); }
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); }
public JObject Reset_change_password([FromBody] JObject value) { JObject returnObj = new JObject(); try { String RESET_TOKEN = value["RESET_TOKEN"].ToString(); String RESET_EMAIL = value["RESET_EMAIL"].ToString(); String NEW_PASSWORD = value["NEW_PASSWORD"].ToString(); Classes.Token TokenObj = new Classes.Token(); if (TokenObj.ValidateResetToken(RESET_TOKEN, RESET_EMAIL)) { checkarr.UserLog userr2 = registerDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == RESET_EMAIL); if (userr2 != null) { if (userr2.UserPassword == NEW_PASSWORD) { // same password returnObj.Add("RETURN_CODE", 5); } else { userr2.UserPassword = NEW_PASSWORD; registerDBContext.SaveChanges(); returnObj.Add("RETURN_CODE", 1); // password changed } } else { returnObj.Add("RETURN_CODE", 4); // password not changed } } else { returnObj.Add("RETURN_CODE", 3); // reset token is not valid } } catch (Exception e) { System.Diagnostics.Debug.WriteLine("Reset change password: "******"RETURN_CODE", 2); //exception } return(returnObj); }
public JObject send_activation_mail([FromBody] JObject value) { JObject returnObj = new JObject(); try { int USER_ID = int.Parse(value["USER_ID"].ToString()); String USER_EMAIL = value["USER_EMAIL"].ToString(); 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 = USER_ID; homeDBContext.Confirmationcode.Add(confirmationCodeModel); homeDBContext.SaveChanges(); Classes.Token tokenGenerator = new Classes.Token(); JwtSecurityToken activationToken = tokenGenerator.GenerateActivationToken(USER_ID); // sending activation mail Classes.Mailer currentMailer = new Classes.Mailer(); currentMailer.sendActivationMail(USER_EMAIL, new JwtSecurityTokenHandler().WriteToken(activationToken), activationCode, USER_ID); returnObj.Add("RETURN_CODE", 1); // mail sent returnObj.Add("ACTIVATION_TOKEN", new JwtSecurityTokenHandler().WriteToken(activationToken)); } catch (Exception e) { System.Diagnostics.Debug.WriteLine("Exception in home controller while sending activation mail " + e); returnObj.Add("RETURN_CODE", 2); // exception; } return(returnObj); }
public JObject Verify_reset_token([FromBody] JObject value) { JObject returnObject = new JObject(); try { String reset_token = value["RESET_TOKEN"].ToString(); String reset_email = value["RESET_EMAIL"].ToString(); Classes.Token TokenObj = new Classes.Token(); Boolean isResetTokenValid = TokenObj.ValidateResetToken(reset_token, reset_email); returnObject.Add("RESET_TOKEN_STATUS", isResetTokenValid); } catch (Exception e) { returnObject.Add("RESET_TOKEN_STATUS", false); System.Diagnostics.Debug.WriteLine("Exception in Verify reset token: " + e); } return(returnObject); }
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()); }
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); }
public JObject Account_activation([FromBody] JObject value) { JObject returnObject = new JObject(); try { String activationCode = value["ACTIVATION_CODE"].ToString(); int userId = Int32.Parse(value["USER_ID"].ToString()); String activationToken = value["ACTIVATION_TOKEN"].ToString(); Classes.Token tokenClassObj = new Classes.Token(); Boolean isActivationTokenValid = tokenClassObj.ValidateActivationToken(activationToken, userId); if (isActivationTokenValid) { // activation token is valid checkarr.Confirmationcode ccode = registerDBContext.Confirmationcode.FirstOrDefault(i => i.ConfirmationCode == activationCode && i.ConfirmationType == "ACTIVATION_CODE" && i.UserId == userId); if (ccode != null && ccode.ConfirmationCode.Equals(activationCode)) { // code is valid if (ccode.ExpiryTime >= DateTime.UtcNow) { checkarr.UserLog User1 = registerDBContext.UserLog.FirstOrDefault(i => i.IduserLog == userId); if (User1 != null) { User1.Activated = "T"; registerDBContext.SaveChanges(); returnObject.Add("RETURN_CODE", 1); } else { returnObject.Add("RETURN_CODE", 5); // exception } } else { // code is expired returnObject.Add("RETURN_CODE", 3); } } else { // code ins invalid returnObject.Add("RETURN_CODE", 2); } } else { // activation token is invalid returnObject.Add("RETURN_CODE", 4); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("EXCEPTION IN RECOVERY CONFIRMATION = " + ex); returnObject.Add("RETURN_CODE", 5); } /* * * * * . RETURN_CODE: 1 = Account is activated * . RETURN_CODE: 2 = CODE IS INVALID * . RETURN_CODE: 3 = CODE IS EXPIRED * . RETURN_CODE: 4 = TOKEN IS INVALID * . RETURN_CODE: 5 = EXCEPTION * */ return(returnObject); }
public JObject Recovery_confirmation([FromBody] JObject value) { JObject returnObject = new JObject(); try { String recoveryCode = value["RECOVERY_CODE"].ToString(); String recoveryToken = value["RECOVERY_TOKEN"].ToString(); String recoveryEmail = value["RECOVERY_EMAIL"].ToString(); Classes.Token tokenClassObj = new Classes.Token(); Boolean isRecoveryTokenValid = tokenClassObj.ValidateRecoveryToken(recoveryToken, recoveryEmail); if (isRecoveryTokenValid) { // recovery token is valid checkarr.UserLog Userr = registerDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == recoveryEmail); if (Userr != null) { checkarr.Confirmationcode ccode1 = registerDBContext.Confirmationcode.FirstOrDefault(i => i.ConfirmationCode == recoveryCode && i.ConfirmationType == "RECOVERY_CODE" && Userr.IduserLog == i.UserId); if (ccode1 != null && ccode1.ExpiryTime >= DateTime.UtcNow) { JwtSecurityToken resetToken = tokenClassObj.GenerateResetToken(recoveryEmail); returnObject.Add("RESET_TOKEN", new JwtSecurityTokenHandler().WriteToken(resetToken)); returnObject.Add("RETURN_CODE", 1); registerDBContext.Confirmationcode.Remove(ccode1); registerDBContext.SaveChanges(); } else { System.Diagnostics.Debug.WriteLine("CCODE IF ====>" + ccode1); // recovery code is invalid returnObject.Add("RESET_TOKEN", null); returnObject.Add("RETURN_CODE", 2); } } else { returnObject.Add("RESET_TOKEN", null); returnObject.Add("RETURN_CODE", 5); } } else { // recovery token is invalid returnObject.Add("RESET_TOKEN", null); returnObject.Add("RETURN_CODE", 3); } } catch (Exception e) { System.Diagnostics.Debug.WriteLine("Exception in RECOVERY_CONFIRMATION " + e); returnObject.Add("RESET_TOKEN", null); returnObject.Add("RETURN_CODE", 4); } /* * RESET_TOKEN + * * . RETURN_CODE: 1 = RECOVERY CODE IS CONFIRMED * . RETURN_CODE: 2 = RECOVERY CODE IS INVALID * . RETURN_CODE: 3 = RECOVERY TOKEN IS INVALID * . RETURN_CODE: 4 = EXCEPTION * . RETURN_CODE: 5 = SOMETHING WENT WRONG * */ return(returnObject); }