Esempio n. 1
0
 public GameEndEventArgs(int?build, BnetRegion region, IGameState gameState, int wins, int losses)
 {
     Build     = build;
     Region    = region;
     GameState = gameState;
     Wins      = wins;
     Losses    = losses;
 }
Esempio n. 2
0
        private static string GetAuthenticationUri(BnetRegion bnetRegion)
        {
            switch (bnetRegion)
            {
            case BnetRegion.eu:
                return("https://eu.battle.net");

            case BnetRegion.cn:
                return("https://www.battlenet.com.cn");

            default:
                return("https://eu.battle.net");
            }
        }
Esempio n. 3
0
        public async Task <OAuthToken> GetToken(string code, string redirectUri, BnetRegion region)
        {
            var httpClient = new HttpClient();

            httpClient.BaseAddress = new Uri($"{GetAuthenticationUri(region)}/oauth/token");
            var res = await httpClient.PostAsync($"?code={code}&grant_type=authorization_code&redirect_uri={redirectUri}&client_id={_bnetClientId}&client_secret={_bnetApiSecret}", null);

            if (!res.IsSuccessStatusCode)
            {
                return(null);
            }

            var readAsStringAsync = await res.Content.ReadAsStringAsync();

            return(JsonSerializer.Deserialize <OAuthToken>(readAsStringAsync));
        }
Esempio n. 4
0
        public async Task <BlizzardUserInfo> GetUser(string bearer, BnetRegion region)
        {
            var httpClient = new HttpClient();

            httpClient.BaseAddress = new Uri($"{GetAuthenticationUri(region)}/oauth/userinfo");
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", bearer);

            var res = await httpClient.GetAsync("");

            if (!res.IsSuccessStatusCode)
            {
                return(null);
            }

            var readAsStringAsync = await res.Content.ReadAsStringAsync();

            return(JsonSerializer.Deserialize <BlizzardUserInfo>(readAsStringAsync));
        }
        public async Task <IActionResult> GetBlizzardToken(
            [FromQuery] string code,
            [FromQuery] string redirectUri,
            [FromQuery] BnetRegion region)
        {
            var token = await _blizzardAuthenticationService.GetToken(code, redirectUri, region);

            if (token == null)
            {
                return(Unauthorized("Sorry H4ckerb0i"));
            }

            var userInfo = await _blizzardAuthenticationService.GetUser(token.access_token, region);

            if (userInfo == null)
            {
                return(Unauthorized("Sorry H4ckerb0i"));
            }

            var w3User = W3CUserAuthentication.Create(userInfo.battletag, JwtPrivateKey);

            return(Ok(w3User));
        }