예제 #1
0
        public async Task <AuthResponseDTO> RequestTokenAsync([FromBody] OsuTokenRequestDTO tokenRequestDto)
        {
            // To auth a code - https://osu.ppy.sh/oauth/authorize?client_id=4309&redirect_uri=http://localhost:61899/osu/callback&response_type=code&scope=identify public&state=chicken

            string clientSecret = Environment.GetEnvironmentVariable("OsuRequest_Osu_ClientSecret");

            if (clientSecret == null)
            {
                throw new HttpResponseException();
            }

            AuthRequestDTO authRequestDto = new AuthRequestDTO()
            {
                ClientId     = 4309,
                ClientSecret = clientSecret,
                Code         = tokenRequestDto.Code,
                GrantType    = "authorization_code",
                RedirectUri  = "http://localhost:61899/osu/callback"
            };

            HttpResponseMessage response = await httpClient.PostAsync("/oauth/token", JsonContent.Create(authRequestDto, null, snakeCaseSerializerOptions));

            if (response.IsSuccessStatusCode)
            {
                AuthResponseDTO authResponse = await response.Content.ReadFromJsonAsync <AuthResponseDTO>(snakeCaseSerializerOptions);

                return(authResponse);
            }

            throw new HttpResponseException()
                  {
                      Status = (int)response.StatusCode,
                      Value  = await response.Content.ReadAsStringAsync()
                  };
        }
예제 #2
0
        public async Task RequestTokenAsync(string code)
        {
            OsuTokenRequestDTO osuTokenRequestDto = new OsuTokenRequestDTO()
            {
                Code = code
            };

            HttpResponseMessage response = await authHttpClient.PostAsync("/auth/osu/token", JsonContent.Create(osuTokenRequestDto));

            if (response.IsSuccessStatusCode)
            {
                AuthResponseDTO authResponse = await response.Content.ReadFromJsonAsync <AuthResponseDTO>();

                accessToken = authResponse.AccessToken;

                osuHttpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
            }
        }