/// <summary> /// VerifyCode by type generate /// </summary> /// <param name="user"></param> /// <param name="code"></param> /// <param name="typeGenerate"></param> /// <returns></returns> public static bool VerifyCodeSms(ApplicationUser user, string code, string typeGenerate) { try { var secretSmsKey = SecretSmsKey.FromJson(user.ListSecretKeySms); string secret; switch (typeGenerate) { case Const.TypeGenerateChangePassword: secret = secretSmsKey.ChangePassword; break; case Const.TypeGenerateChangeOldPhoneNumber: secret = secretSmsKey.ChangePhoneOldPhone; break; case Const.TypeGenerateChangeNewPhoneNumber: secret = secretSmsKey.ChangePhoneNewPhone; break; case Const.TypeGenerateChangeConfirmPhoneNumber: secret = secretSmsKey.ChangePhoneConfirmPhone; break; case Const.TypeGenerateChangeTwoFactor: secret = secretSmsKey.ChangeTwoFactor; break; case Const.TypeGenerateLockAccount: secret = secretSmsKey.LockAccount; break; case Const.TypeGenerateUnlockAccount: secret = secretSmsKey.UnlockAccount; break; case Const.TypeGenerateAddPhoneNumber: secret = secretSmsKey.AddPhoneNumber; break; case Const.TypeGenerateAddLockScreen: secret = secretSmsKey.AddLockScreen; break; case Const.TypeGenerateLogin: secret = secretSmsKey.Login; break; default: return(false); } if (string.IsNullOrEmpty(secret)) { return(false); } var authenticator = new TwoStepsAuthenticator.TimeAuthenticator(); var isCheck = authenticator.CheckCode(secret, code, user); return(isCheck); } catch (Exception e) { Logger.LogError("SecurityController ==>> VerifyCode: " + e.Message); return(false); } }
public static async Task <string> GenerateCode(UserManager <ApplicationUser> userManager, ApplicationUser user, string typeGenerate) { try { var secret = TwoStepsAuthenticator.Authenticator.GenerateKey(); Console.WriteLine(secret); var oldJsonSecretKey = user.ListSecretKeySms; var secretSmsKey = new SecretSmsKey(); if (!string.IsNullOrEmpty(oldJsonSecretKey)) { secretSmsKey = SecretSmsKey.FromJson(user.ListSecretKeySms); } switch (typeGenerate) { case Const.TypeGenerateChangePassword: secretSmsKey.ChangePassword = secret; break; case Const.TypeGenerateChangeOldPhoneNumber: secretSmsKey.ChangePhoneOldPhone = secret; break; case Const.TypeGenerateChangeNewPhoneNumber: secretSmsKey.ChangePhoneNewPhone = secret; break; case Const.TypeGenerateChangeConfirmPhoneNumber: secretSmsKey.ChangePhoneConfirmPhone = secret; break; case Const.TypeGenerateChangeTwoFactor: secretSmsKey.ChangeTwoFactor = secret; break; case Const.TypeGenerateLockAccount: secretSmsKey.LockAccount = secret; break; case Const.TypeGenerateUnlockAccount: secretSmsKey.UnlockAccount = secret; break; case Const.TypeGenerateAddPhoneNumber: secretSmsKey.AddPhoneNumber = secret; break; case Const.TypeGenerateAddLockScreen: secretSmsKey.AddLockScreen = secret; break; case Const.TypeGenerateLogin: secretSmsKey.Login = secret; break; default: return(null); } var newJsonListSecretSms = SecretSmsKey.ToJson(secretSmsKey); user.ListSecretKeySms = newJsonListSecretSms; await userManager.UpdateAsync(user); var authenticator = new TwoStepsAuthenticator.TimeAuthenticator(); var code = authenticator.GetCode(secret); var message = "Vakaxa security code is: " + code; Console.WriteLine(message); return(message); } catch (Exception e) { Logger.LogError("SecurityController ==>> GenerateCode: " + e.Message); return(null); } }