コード例 #1
0
        private static async Task acquireAndAddMsUser(List <UserBase> userList, Microsoft.Identity.Client.IAccount msAccount)
        {
            var token = new MicrosoftToken(msAccount);
            await token.AcquireNewToken();

            userList.Add(await UserBase.AcquireUserFromToken(token));
        }
コード例 #2
0
ファイル: XboxliveAuth.cs プロジェクト: Coloryr/NsisoLauncher
        public async Task <XboxLiveToken> Authenticate(MicrosoftToken token, CancellationToken cancellation = default)
        {
            var xbl_result = await XblAuthenticate(new XblAuthProperties(token.Access_token), cancellation);

            string xbl_token   = xbl_result.Token;
            var    xsts_result = await XstsAuthenticate(new XstsAuthProperties(xbl_token), cancellation);

            return(new XboxLiveToken()
            {
                XblAuthResult = xbl_result,
                XstsAuthResult = xsts_result
            });
        }
コード例 #3
0
        private async void Microsoft_Click(object sender, RoutedEventArgs e)
        {
            viewModel.IsButtonAvailable = false;
            viewModel.IsLoading         = true;
            try
            {
                var token = new MicrosoftToken();
                await token.AcquireNewToken();

                var msClient = new MicrosoftClient(token);
                AppGlobalVariables.Users.Add(await msClient.GetUserDataAsync());
            }
            catch (Exception ex)
            {
                DebugHelper.Debugger.WriteErrorLog("Error in acquiring MS token on AuthDialog.", ex);
            }
            dialogHost.Hide();
        }
コード例 #4
0
        public async void ExecuteOnPageAppearing()
        {
            UserEmail = await SecureStorage.GetAsync("Email");

            string socialProvider = await SecureStorage.GetAsync("Provider");

            OAuth2ProviderType = (OAuth2ProviderType)Enum.Parse(typeof(OAuth2ProviderType), socialProvider);

            var token = string.Empty;

            switch (OAuth2ProviderType)
            {
            case OAuth2ProviderType.NONE:
                break;

            case OAuth2ProviderType.TRADITIONAL:
                break;

            case OAuth2ProviderType.FACEBOOK:
                token = await SecureStorage.GetAsync(OAuth2ProviderType.ToString());

                FacebookCredentials = JsonConvert.DeserializeObject <FacebookToken>(token);
                ProviderToken       = FacebookCredentials.AccessToken;
                ProviderName        = OAuth2ProviderType.FACEBOOK.ToString();
                break;

            case OAuth2ProviderType.GOOGLE:
                token = await SecureStorage.GetAsync(OAuth2ProviderType.ToString());

                GoogleCredentials = JsonConvert.DeserializeObject <GoogleToken>(token);
                ProviderToken     = GoogleCredentials.AccessToken;
                ProviderName      = OAuth2ProviderType.GOOGLE.ToString();
                break;

            case OAuth2ProviderType.MICROSOFT:
                token = await SecureStorage.GetAsync(OAuth2ProviderType.ToString());

                MicrosoftCredentials = JsonConvert.DeserializeObject <MicrosoftToken>(token);
                ProviderToken        = MicrosoftCredentials.AccessToken;
                ProviderName         = OAuth2ProviderType.MICROSOFT.ToString();
                break;
            }
        }
コード例 #5
0
        public async Task <MicrosoftToken> RefreshMicrosoftAccessToken(MicrosoftToken token, CancellationToken cancellation = default)
        {
            Dictionary <string, string> args = new();

            args.Add("client_id", ClientId);
            args.Add("refresh_token", token.Refresh_token);
            args.Add("grant_type", "refresh_token");
            args.Add("redirect_uri", RedirectUri.AbsoluteUri);
            FormUrlEncodedContent content = new(args);
            var result = await HttpRequesterAPI.client.PostAsync(OAuthTokenUri, content, cancellation);

            result.EnsureSuccessStatusCode();

            string jsonStr = await result.Content.ReadAsStringAsync();

            MicrosoftToken re_token = JsonConvert.DeserializeObject <MicrosoftToken>(jsonStr);

            return(re_token);
        }
コード例 #6
0
        public async Task <MicrosoftUser> GetProfile(MicrosoftToken ms_token, MinecraftToken mc_token, CancellationToken cancellation)
        {
            HttpRequestMessage request = new(HttpMethod.Get, ProfileUri);

            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", mc_token.AccessToken);
            var result = await HttpRequesterAPI.client.SendAsync(request, cancellation);

            result.EnsureSuccessStatusCode();

            var respond_str = await result.Content.ReadAsStringAsync();

            Console.WriteLine(respond_str);
            MicrosoftUser profile = JsonConvert.DeserializeObject <MicrosoftUser>(respond_str);

            profile.MicrosoftToken = ms_token;
            profile.MinecraftToken = mc_token;

            return(profile);
        }