コード例 #1
0
        public bool Authorize(string accessToken)
        {
            if (!string.IsNullOrWhiteSpace(accessToken))
            {
                using (WebClient webClient = CreateTwitchWebClient())
                {
                    webClient.Headers.Add(TWITCH_AUTHORIZATION_HEADER, "OAuth " + accessToken);

                    string result = webClient.DownloadString(KRAKEN_URL);

                    JObject verifyRequestJson = JObject.Parse(result);

                    if (verifyRequestJson != null)
                    {
                        JObject tokenJson = verifyRequestJson.Value <JObject>("token");

                        if (tokenJson != null)
                        {
                            bool valid = tokenJson.Value <bool>("valid");

                            if (valid)
                            {
                                string username = tokenJson.Value <string>("user_name");
                                string clientId = tokenJson.Value <string>("client_id");

                                if (!string.IsNullOrWhiteSpace(username) &&
                                    !string.IsNullOrWhiteSpace(clientId) &&
                                    clientId.Equals(TWITCH_CLIENT_ID, StringComparison.OrdinalIgnoreCase))
                                {
                                    _twitchAuthInfo = new TwitchAuthInfo(accessToken, username);
                                    FireIsAuthorizedChanged();
                                    return(true);
                                }
                            }
                        }
                    }
                }
            }

            RevokeAuthorization();
            return(false);
        }
コード例 #2
0
 public void RevokeAuthorization()
 {
     _twitchAuthInfo = null;
     FireIsAuthorizedChanged();
 }