From 97b4ab2f157524b7c0b9db8afadaddb704fa0078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B7=B3?= Date: Fri, 4 Nov 2022 23:23:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E3=80=81=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E7=BC=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/System/AccountController.cs | 37 ++++++++++++++++-- .../Yi.Framework.ApiMicroservice/Program.cs | 5 +-- .../yi-sqlsugar-dev.db | Bin 221184 -> 241664 bytes .../Yi.Framework.Core/JwtInvoker.cs | 5 +++ .../DbExtend/DbFiterExtend.cs | 10 ++--- .../src/views/system/user/index.vue | 4 +- 6 files changed, 47 insertions(+), 14 deletions(-) diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/AccountController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/AccountController.cs index 26396acd..cb7199d8 100644 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/AccountController.cs +++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/AccountController.cs @@ -35,7 +35,11 @@ namespace Yi.Framework.ApiMicroservice.Controllers private SecurityCodeHelper _securityCode; private IRepository _repository; private CacheInvoker _cacheDb; - public AccountController(ILogger logger, IUserService iUserService, JwtInvoker jwtInvoker, SecurityCodeHelper securityCode, CacheInvoker cacheInvoker) + public AccountController(ILogger logger, + IUserService iUserService, + JwtInvoker jwtInvoker, + SecurityCodeHelper securityCode, + CacheInvoker cacheInvoker) { _iUserService = iUserService; _jwtInvoker = jwtInvoker; @@ -87,15 +91,38 @@ namespace Yi.Framework.ApiMicroservice.Controllers var loginInfo = HttpContext.GetLoginLogInfo(); + loginInfo.LoginUser = loginDto.UserName; loginInfo.LogMsg = "登录成功!"; + + var loginLogRepository = _repository.ChangeRepository>(); UserEntity user = new(); + + //这里其实可以返回Dto if (await _iUserService.Login(loginDto.UserName, loginDto.Password, o => user = o)) { + //根据用户id获取改用户的完整信息 var userRoleMenu = await _iUserService.GetUserAllInfo(user.Id); + + //如果该用户没有任何一个菜单,或者没有任何一个角色,无意义的登录 + if (userRoleMenu.PermissionCodes.Count == 0) + { + return Result.Error("登录禁用!该用户分配无任何权限,无意义登录!"); + } + + + //将该用户的完整信息缓存一份至缓存,后续需要完整用户信息,只需通过token中的id从缓存中获取即可 + + //先制作token + var token = _jwtInvoker.GetAccessToken(userRoleMenu.User, userRoleMenu.Menus); + + //需要注意,缓存用户信息时间应大于或等于token过期时间 + _cacheDb.Set($"Yi:UserInfo:{user.Id}", userRoleMenu, _jwtInvoker.GetTokenExpiration()); + + await loginLogRepository.InsertReturnSnowflakeIdAsync(loginInfo); - return Result.Success(loginInfo.LogMsg).SetData(new { token = _jwtInvoker.GetAccessToken(userRoleMenu.User, userRoleMenu.Menus) }); + return Result.Success(loginInfo.LogMsg).SetData(new { token }); } loginInfo.LogMsg = "登录失败!用户名或者密码错误!"; await loginLogRepository.InsertReturnSnowflakeIdAsync(loginInfo); @@ -137,11 +164,13 @@ namespace Yi.Framework.ApiMicroservice.Controllers /// /// [HttpGet] - public async Task GetUserAllInfo() + public Result GetUserAllInfo() { //通过鉴权jwt获取到用户的id var userId = HttpContext.GetUserIdInfo(); - var data = await _iUserService.GetUserAllInfo(userId); + //此处从缓存中获取即可 + var data = _cacheDb.Get($"Yi:UserInfo:{userId}"); + //var data = await _iUserService.GetUserAllInfo(userId); //系统用户数据被重置,老前端访问重新授权 if (data is null) { diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Program.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Program.cs index 2a0d0f38..babe4f1e 100644 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Program.cs +++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Program.cs @@ -60,10 +60,9 @@ builder.Host.ConfigureLogging(loggingBuilder => #endregion builder.Services.AddIocService(builder.Configuration); #region -//Sqlsugarע,ǷȨ޹ܣҪRedis +//Sqlsugarע,ǷȨ޹ܣ߻ #endregion -builder.Services.AddSqlsugarServer(); -//builder.Services.AddSqlsugarServer(DbFiterExtend.Data); +builder.Services.AddSqlsugarServer(DbFiterExtend.Data); #region //Quartz #endregion diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db index 949050ab52cc5f1709b05476dea37e0815cd7b6d..d02285a5cfd0570bc9951a213ec30fcacfd1c0ef 100644 GIT binary patch literal 241664 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 diff --git a/Yi.Framework.Net6/Yi.Framework.Core/JwtInvoker.cs b/Yi.Framework.Net6/Yi.Framework.Core/JwtInvoker.cs index 0bb2f670..6742f5ae 100644 --- a/Yi.Framework.Net6/Yi.Framework.Core/JwtInvoker.cs +++ b/Yi.Framework.Net6/Yi.Framework.Core/JwtInvoker.cs @@ -27,6 +27,11 @@ namespace Yi.Framework.Core return this.GetToken(_JWTTokenOptions.ReExpiration, user, null, true); } + public TimeSpan GetTokenExpiration() + { + return new TimeSpan(0, _JWTTokenOptions.Expiration, 0); + } + public string GetAccessToken(UserEntity user, HashSet menus) { return this.GetToken(_JWTTokenOptions.Expiration, user, menus); diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbFiterExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbFiterExtend.cs index b5b33dab..3d8cbc69 100644 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbFiterExtend.cs +++ b/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbFiterExtend.cs @@ -21,7 +21,7 @@ namespace Yi.Framework.Core } //无需授权情况 - var userName = httpContext?.GetUserNameInfo(); + var userName = httpContext?.GetUserIdInfo(); if (userName is null) { return; @@ -33,9 +33,10 @@ namespace Yi.Framework.Core return; } - //这里可以优化一下 + var userId = httpContext?.GetUserIdInfo(); + //根据缓存获取全部用户信息 - var userRoleMenu = ServiceLocator.Instance?.GetService()?.Get("用户id"); + var userRoleMenu = ServiceLocator.Instance?.GetService()?.Get($"Yi:UserInfo:{userId}"); var roles = userRoleMenu?.Roles; @@ -43,9 +44,8 @@ namespace Yi.Framework.Core { roles = new(); } - //先测试部门就是LEBG + long deptId = userRoleMenu?.User.DeptId ?? -1; - long userId = httpContext?.GetUserIdInfo()??-1; //根据角色的数据范围,来添加相对于的数据权限 if (roles is not null) { diff --git a/Yi.Vue3.X.RuoYi/src/views/system/user/index.vue b/Yi.Vue3.X.RuoYi/src/views/system/user/index.vue index 3a6e781e..e4ac251f 100644 --- a/Yi.Vue3.X.RuoYi/src/views/system/user/index.vue +++ b/Yi.Vue3.X.RuoYi/src/views/system/user/index.vue @@ -143,8 +143,8 @@ - - + +