diff --git a/FunGame.Server/Controllers/Authenticator.cs b/FunGame.Server/Controllers/Authenticator.cs deleted file mode 100644 index 1423d01..0000000 --- a/FunGame.Server/Controllers/Authenticator.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Milimoe.FunGame.Core.Api.Transmittal; -using Milimoe.FunGame.Core.Api.Utility; -using Milimoe.FunGame.Core.Interface.Base; -using Milimoe.FunGame.Core.Library.Constant; - -namespace Milimoe.FunGame.Server.Controller -{ - public class Authenticator : Core.Library.Common.Architecture.Authenticator - { - public TwoFactorAuthenticator Login2FA = new(); - - private readonly IServerModel Server; - private readonly SQLHelper SQLHelper; - private readonly MailSender? MailSender; - - public Authenticator(IServerModel Server, SQLHelper SQLHelper, MailSender? MailSender) : base(SQLHelper) - { - this.Server = Server; - this.SQLHelper = SQLHelper; - this.MailSender = MailSender; - } - - public override bool AfterAuthenticator(AuthenticationType type, params object[] args) - { - if (type == AuthenticationType.Username) - { - // 添加2FA二次验证等 - string username = (string)args[0]; - } - return true; - } - - public override bool BeforeAuthenticator(AuthenticationType type, params object[] args) - { - // 添加人机验证或频繁验证等 - return true; - } - - public bool Check2FA(string username, string code) - { - return Login2FA.Authenticate(username, code); - } - } -} diff --git a/FunGame.Server/Services/Authenticator.cs b/FunGame.Server/Services/Authenticator.cs new file mode 100644 index 0000000..b66586f --- /dev/null +++ b/FunGame.Server/Services/Authenticator.cs @@ -0,0 +1,30 @@ +using Milimoe.FunGame.Core.Api.Transmittal; +using Milimoe.FunGame.Core.Interface.Base; +using Milimoe.FunGame.Core.Library.Constant; + +namespace Milimoe.FunGame.Server.Services +{ + public class Authenticator(IServerModel Server, SQLHelper SQLHelper, MailSender? MailSender) : Core.Library.Common.Architecture.Authenticator(SQLHelper) + { + public TFA TFA = new(SQLHelper); + + private readonly IServerModel Server = Server; + private readonly SQLHelper SQLHelper = SQLHelper; + private readonly MailSender? MailSender = MailSender; + + public override bool AfterAuthenticator(AuthenticationType type, params object[] args) + { + if (type == AuthenticationType.Username && args[0] is string username) + { + // 添加2FA二次验证等 + } + return true; + } + + public override bool BeforeAuthenticator(AuthenticationType type, params object[] args) + { + // 添加人机验证或频繁验证等 + return true; + } + } +} diff --git a/FunGame.Server/Services/TFA.cs b/FunGame.Server/Services/TFA.cs index 85cf614..8419fba 100644 --- a/FunGame.Server/Services/TFA.cs +++ b/FunGame.Server/Services/TFA.cs @@ -1,8 +1,9 @@ -using Milimoe.FunGame.Core.Api.Utility; +using Milimoe.FunGame.Core.Api.Transmittal; +using Milimoe.FunGame.Core.Api.Utility; namespace Milimoe.FunGame.Server.Services { - public class TFA : TwoFactorAuthenticator + public class TFA(SQLHelper SQLHelper) : TwoFactorAuthenticator(SQLHelper) { public override bool IsAvailable(string username) {