public async Task <JsonResult> GetEdit([FromBody] FMIntId entity) { var jm = new AdminUiCallBack(); var model = await _sysUserServices.QueryByIdAsync(entity.id); if (model == null) { jm.msg = "不存在此信息"; return(new JsonResult(jm)); } var userSexTypes = EnumHelper.EnumToList <GlobalEnumVars.UserSexTypes>(); var userRoles = await _sysUserRoleServices.QueryListByClauseAsync(p => p.userId == model.id); var roleIds = userRoles.Select(p => p.roleId).ToList(); var roles = await _sysRoleServices.QueryListByClauseAsync(p => p.deleted == false); jm.code = 0; jm.data = new { model, userSexTypes, roles, roleIds }; return(new JsonResult(jm)); }
public async Task <JsonResult> GetUserInfo() { var jm = new AdminUiCallBack(); var userModel = await _sysUserServices.QueryByIdAsync(_user.ID); jm.code = 0; jm.msg = "数据获取正常"; jm.data = new { userModel.userName, userModel.nickName, userModel.createTime }; return(new JsonResult(jm)); }
public async Task <object> RefreshToken(string token = "") { var jm = new AdminUiCallBack(); if (string.IsNullOrEmpty(token)) { jm.code = 1001; jm.msg = "token无效,请重新登录!"; return(new JsonResult(jm)); } var tokenModel = JwtHelper.SerializeJwt(token); if (tokenModel != null && tokenModel.Uid > 0) { var user = await _sysUserServices.QueryByIdAsync(tokenModel.Uid); if (user != null) { var userRoles = await _sysUserServices.GetUserRoleNameStr(user.userName, user.passWord); //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 var claims = new List <Claim> { new Claim(ClaimTypes.Name, user.userName), new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjectToString()), new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_permissionRequirement.Expiration.TotalSeconds).ToString()) }; claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); //用户标识 var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme); identity.AddClaims(claims); var refreshToken = JwtToken.BuildJwtToken(claims.ToArray(), _permissionRequirement); jm.code = 0; jm.msg = "认证成功"; jm.data = refreshToken; //插入登录日志 var log = new SysLoginRecord(); log.username = user.userName; log.ip = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); log.os = RuntimeInformation.OSDescription; log.browser = _httpContextAccessor.HttpContext.Request.Headers[HeaderNames.UserAgent]; log.operType = (int)GlobalEnumVars.LoginRecordType.刷新Token; log.createTime = DateTime.Now; await _sysLoginRecordRepository.InsertAsync(log); return(new JsonResult(jm)); } } jm.code = 1001; jm.msg = "token无效,请重新登录!"; return(new JsonResult(jm)); }