public Task <string> Build(string purpose, string target, int lifeTimeSeconds, int maxErrorCount, string code, string?securityStamp = null) { if (purpose is null) { throw new ArgumentNullException(nameof(purpose)); } if (target is null) { throw new ArgumentNullException(nameof(target)); } if (Options.CurrentValue.LifeTimeSecond <= 0) { throw new InvalidOperationException("Invalid options: Shashlik.Captcha.LifeTimeSecond"); } if (Options.CurrentValue.MaxErrorCount < 0 || Options.CurrentValue.MaxErrorCount > 99) { throw new InvalidOperationException("Invalid options: Shashlik.Captcha.MaxErrorCount, should be 0~99"); } var key = GetKey(purpose, target, securityStamp); return(Task.FromResult(TotpGenerator.Generate(key).ToString())); }
/// <summary> /// Get current user's code /// </summary> public static string Generate(string secret) { _totpGenerator = new TotpGenerator(); return(_totpGenerator.Generate(secret).ToString()); }