From 1d94e53866b971d68cdbf19e3f105722dc94156a Mon Sep 17 00:00:00 2001 From: Argo-Tianyi Date: Thu, 16 Dec 2021 14:52:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=B9=E7=94=A8=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=96=B9=E5=BC=8F=E8=BF=9B=E8=A1=8C=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E9=89=B4=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/SwitchButton.razor.cs | 10 +++ ...oginController.cs => AccountController.cs} | 64 ++++++++----------- .../Pages/Account/Login.razor | 34 +++++----- .../Pages/Account/Login.razor.cs | 37 ++--------- 4 files changed, 64 insertions(+), 81 deletions(-) rename src/blazor/admin/BootstrapAdmin.Web/Controllers/{LoginController.cs => AccountController.cs} (83%) diff --git a/src/blazor/admin/BootstrapAdmin.Web/Components/SwitchButton.razor.cs b/src/blazor/admin/BootstrapAdmin.Web/Components/SwitchButton.razor.cs index 8f58ace1..2c7cc2a9 100644 --- a/src/blazor/admin/BootstrapAdmin.Web/Components/SwitchButton.razor.cs +++ b/src/blazor/admin/BootstrapAdmin.Web/Components/SwitchButton.razor.cs @@ -31,6 +31,12 @@ namespace BootstrapAdmin.Web.Components [Parameter] public EventCallback ToggleStateChanged { get; set; } + /// + /// + /// + [Parameter] + public EventCallback OnClick { get; set; } + private async Task Toggle() { ToggleState = !ToggleState; @@ -38,6 +44,10 @@ namespace BootstrapAdmin.Web.Components { await ToggleStateChanged.InvokeAsync(ToggleState); } + if (OnClick.HasDelegate) + { + await OnClick.InvokeAsync(); + } } private string? GetText() => ToggleState ? OnText : OffText; diff --git a/src/blazor/admin/BootstrapAdmin.Web/Controllers/LoginController.cs b/src/blazor/admin/BootstrapAdmin.Web/Controllers/AccountController.cs similarity index 83% rename from src/blazor/admin/BootstrapAdmin.Web/Controllers/LoginController.cs rename to src/blazor/admin/BootstrapAdmin.Web/Controllers/AccountController.cs index 72beae68..50af5521 100644 --- a/src/blazor/admin/BootstrapAdmin.Web/Controllers/LoginController.cs +++ b/src/blazor/admin/BootstrapAdmin.Web/Controllers/AccountController.cs @@ -13,7 +13,7 @@ namespace Bootstrap.Admin.Controllers /// Account controller. /// [AllowAnonymous] - public class LoginController : Controller + public class AccountController : Controller { //private const string MobileSchema = "Mobile"; ///// @@ -55,43 +55,35 @@ namespace Bootstrap.Admin.Controllers // return ret; //} - ///// - ///// Login the specified userName, password and remember. - ///// - ///// The login. - ///// - ///// - ///// - ///// User name. - ///// Password. - ///// Remember. - //[HttpPost] - //public async Task Login(string userName, string password, string remember, - // [FromServices] IUsers userService, - // [FromServices] ILogins loginService, - // [FromServices] BootstrapAppContext context) - //{ - // if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password)) - // { - // return RedirectLogin(); - // } - - // var auth = userService.Authenticate(userName, password); - // await loginService.Log(userName, auth); - // if (auth) - // { - // context.UserName = userName; - // } - // return auth ? await SignInAsync(userName, remember == "true") : RedirectLogin(); - //} - /// - /// + /// Login the specified userName, password and remember. /// - [HttpGet("{id}")] - public async Task Index([FromServices]IUsers user, [FromServices] LoginService loginService, [FromQuery] string? id) => loginService.Valid(id) - ? await SignInAsync(loginService.UserName, loginService.Remember) - : Redirect(CookieAuthenticationDefaults.LoginPath); + /// The login. + /// + /// + /// + /// User name. + /// Password. + /// Remember. + [HttpPost] + public async Task Login(string userName, string password, string remember, + [FromServices] IUsers userService, + [FromServices] ILogins loginService, + [FromServices] BootstrapAppContext context) + { + if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password)) + { + return RedirectLogin(); + } + + var auth = userService.Authenticate(userName, password); + await loginService.Log(userName, auth); + if (auth) + { + context.UserName = userName; + } + return auth ? await SignInAsync(userName, remember == "true") : RedirectLogin(); + } private async Task SignInAsync(string userName, bool persistent, string authenticationScheme = CookieAuthenticationDefaults.AuthenticationScheme) { diff --git a/src/blazor/admin/BootstrapAdmin.Web/Pages/Account/Login.razor b/src/blazor/admin/BootstrapAdmin.Web/Pages/Account/Login.razor index 51486a97..f3abd04b 100644 --- a/src/blazor/admin/BootstrapAdmin.Web/Pages/Account/Login.razor +++ b/src/blazor/admin/BootstrapAdmin.Web/Pages/Account/Login.razor @@ -3,20 +3,11 @@
-
public partial class Login { - [Inject] - [NotNull] - private IDicts? DictsService { get; set; } - private string? Title { get; set; } - private bool AllowMobile { get; set; } + private bool AllowMobile { get; set; } = true; + + private bool UseMobileLogin { get; set; } private bool AllowOAuth { get; set; } = true; - [NotNull] - private string? UserName { get; set; } - - [NotNull] - private string? Password { get; set; } - private bool RememberPassword { get; set; } - [Inject] - [NotNull] - private NavigationManager? Navigation { get; set; } + private string? PostUrl { get; set; } = "/Account/Login"; [Inject] [NotNull] - private LoginService? LoginService { get; set; } + private IDicts? DictsService { get; set; } [Inject] [NotNull] @@ -48,22 +38,9 @@ namespace BootstrapAdmin.Web.Pages.Account Title = DictsService.GetWebTitle(); } - void OnClickMobile() + void OnClickSwitchButton() { - AllowMobile = true; - } - - void OnSignIn() - { - var auth = UserService.Authenticate(UserName, Password); - - if (auth) - { - LoginService.LoginSeessionId = Guid.NewGuid().ToString(); - LoginService.UserName = UserName; - LoginService.Remember = RememberPassword; - Navigation.NavigateTo($"/Login?id={LoginService.LoginSeessionId}", true); - } + PostUrl = UseMobileLogin ? "/Account/Mobile" : "/Account/Login"; } void OnSignUp()