diff --git a/Api/Utility/TFA.cs b/Api/Utility/TFA.cs new file mode 100644 index 0000000..8ba8cc7 --- /dev/null +++ b/Api/Utility/TFA.cs @@ -0,0 +1,33 @@ +namespace Milimoe.FunGame.Core.Api.Utility +{ + /// + /// aka 2FA + /// + public class TFA + { + private readonly Dictionary TFACodes = new(); + + public virtual bool IsAvailable(string username) + { + return true; + } + + public string GetTFACode(string username) + { + return TFACodes.ContainsKey(username) ? TFACodes[username] : Verification.CreateVerifyCode(Library.Constant.VerifyCodeType.MixVerifyCode, 5); + } + + public bool Authenticate(string username, string code) + { + if (!IsAvailable(username)) return false; + if (TFACodes.ContainsKey(username) && TFACodes[username] == code) + { + return true; + } + else + { + return false; + } + } + } +}