public async Task <ApiResponseModel <JwtTokenDto> > GetJwtStr(string name, string pass) { string jwtStr = string.Empty; LogServer.WriteLog("用户登录:" + name); if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pass)) { return(ApiResponse.Error <JwtTokenDto>("用户名或密码不能为空")); } pass = MD5Helper.MD5Encrypt32(pass); var userInfo = await _sysUserInfoServices.GetUserByLogin(name, pass); if (userInfo == null) { return(ApiResponse.Error <JwtTokenDto>("用户名不存在")); } var roleList = await _sysUserInfoServices.GetUserRoleByUserId(userInfo.uID); var claims = new List <Claim> { new Claim(ClaimTypes.Name, name), new Claim(JwtRegisteredClaimNames.Jti, userInfo.uID.ObjToString()), new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) }; claims.AddRange(roleList.Select(s => new Claim(ClaimTypes.Role, s.Name))); var data = await _roleModulePermissionServices.RoleModuleMaps(); var list = data.OrderBy(m => m.Id).Select(m => new PermissionItem { Url = m.Module?.LinkUrl, Role = m.Role?.Name, }).ToList(); _requirement.Permissions = list; //用户标识 var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme); identity.AddClaims(claims); var token = JwtHelper.BuildJwtToken(claims, _requirement); return(ApiResponse.Success(token)); }