/// <summary> /// 同步至Consul /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <BaseOutput> SyncApiGatewayConfigurationToConsul(SyncApiGatewayConfigurationInput input) { var configInfo = await _configDbRepository.GetFirstAsync(it => it.GatewayId == input.GatewayId); if (configInfo != null) { var data = await GetGatewayData(input.GatewayId); await _serviceDiscovery.KeyValuePutAsync(configInfo.GatewayKey, Json.ToJson(data)); } return(new BaseOutput { }); }
/// <summary> /// 微信小程序登陆 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <WxMiniLoginOutput> WxMiniLogin(WxMiniLoginInput input) { var openInfo = await _wxRepository.QueryOpenIdAsync(input.Code, input.AppId); var authInfo = await _oauthDbRepository.GetFirstAsync(it => it.OpenId == openInfo.OpenId && it.AuthServer == "WxMini"); if (authInfo == null) { return new WxMiniLoginOutput { Data = null } } ; var uid = authInfo.Uid; var token = _authRepository.CreateAccessToken(new Dto.Auth.UserTokenDto { Email = string.Empty, Id = uid, Mobile = "test", RealName = "test" }, new List <string>()); return(new WxMiniLoginOutput { Data = new { AccessToken = $"Bearer {token}", Expire = DateTimeOffset.Now.AddHours(4).ToUnixTimeSeconds(), RealName = "test", Mobile = "test", Id = uid } }); } }
/// <summary> /// 用户密码登陆 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <LoginOutput> LoginAsync(LoginInput input) { var rediscontect = _config.StringGet("RedisDefaultServer"); var redis = _redisClient.GetDatabase(rediscontect, 5); var kv = await redis.StringGetAsync($"ImgCode:{input.Guid}"); if (kv.IsNullOrEmpty || kv.ToString().ToLower() != input.ImgCode.ToLower()) { throw new BucketException("GO_2003", "图形验证码错误"); } // 用户验证 var userInfo = await _userDbRepository.GetFirstAsync(it => it.UserName == input.UserName); if (userInfo == null) { throw new BucketException("GO_0004007", "账号不存在"); } if (userInfo.State != 1) { throw new BucketException("GO_0004008", "账号状态异常"); } if (userInfo.Password != Encrypt.SHA256(input.Password + userInfo.Salt)) { throw new BucketException("GO_4009", "账号或密码错误"); } // 用户角色 //_userDbRepository.AsQueryable().Context.Queryable<>() var roleList = await _userDbRepository.AsQueryable().Context.Queryable <RoleInfo, UserRoleInfo>((role, urole) => new object[] { JoinType.Inner, role.Id == urole.RoleId }) .Where((role, urole) => urole.Uid == userInfo.Id) .Where((role, urole) => role.IsDel == false) .Select((role, urole) => new { role.Key }) .ToListAsync(); // token返回 var token = _authRepository.CreateAccessToken(new UserTokenDto { Email = userInfo.Email, Id = userInfo.Id, Mobile = userInfo.Mobile, RealName = userInfo.RealName, }, roleList.Select(it => it.Key).ToList()); return(new LoginOutput { Data = new { AccessToken = $"Bearer {token}", Expire = DateTimeOffset.Now.AddHours(4).ToUnixTimeSeconds(), RealName = userInfo.RealName.SafeString(), Mobile = userInfo.Mobile.SafeString(), userInfo.Id } }); }