コード例 #1
0
ファイル: Program.cs プロジェクト: 0xdeafcafe/XboxLiveApi
        public async Task RefreshTokens(bool force = false)
        {
            var settings = GetSettings();

            if (settings.ExpiresAt < DateTime.UtcNow || force)
            {
                Write("Refreshing Windows Live Access Token... ");
                var windowsLiveRefresh = await Authentication.RefreshWindowsLiveAuthenicationAsync(settings.RefreshToken);

                WriteLine("Done");

                Write("Updating Authentication with Xbox Live... ");
                var xboxLiveAuthentication = await Authentication.AuthenticateXboxLiveAsync(windowsLiveRefresh.AccessToken);

                WriteLine("Done");

                Write("Updating Authorization with Xbox Live... ");
                var xboxLiveAuthorization = await Authentication.AuthorizeXboxLiveAsync(xboxLiveAuthentication.Token);

                WriteLine("Done");

                settings.AccessToken       = windowsLiveRefresh.AccessToken;
                settings.AgeGate           = xboxLiveAuthorization.DisplayClaims.Xui[0].AgeGate;
                settings.ExpiresAt         = DateTime.UtcNow.AddSeconds(windowsLiveRefresh.ExpiresIn - 20);
                settings.Gamertag          = xboxLiveAuthorization.DisplayClaims.Xui[0].Gamertag;
                settings.RefreshToken      = windowsLiveRefresh.RefreshToken;
                settings.Token             = xboxLiveAuthorization.Token;
                settings.UserHeaderSession = xboxLiveAuthorization.DisplayClaims.Xui[0].UserHeaderSession;
                settings.XboxUserId        = xboxLiveAuthorization.DisplayClaims.Xui[0].XboxUserId;

                SetSettings(settings);
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: 0xdeafcafe/XboxLiveApi
        public async Task Login(string windowsLiveAuthServer)
        {
            // get identity
            Write("Microsoft Account Email Address: ");
            var identity = ReadLine();

            // get password
            Write("Microsoft Account Password: "******"*");
                }
                else
                {
                    if (key.Key == ConsoleKey.Backspace && identityPassword.Length > 0)
                    {
                        identityPassword = identityPassword.Substring(0, (identityPassword.Length - 1));
                        Write("\b \b");
                    }
                }
            }while (key.Key != ConsoleKey.Enter);
            WriteLine();

            // get two fac
            Write("Microsoft Account Two Factor Code (Optional): ");
            var identityTwoFactorCode = ReadLine();

            Write("Authenticating with Windows Live... ");
            var windowsLiveAuthentication = await Authentication.AuthenticateWindowsLiveAsync(windowsLiveAuthServer, identity, identityPassword, identityTwoFactorCode);

            WriteLine("Done");

            Write("Authenticating with Xbox Live... ");
            var xboxLiveAuthentication = await Authentication.AuthenticateXboxLiveAsync(windowsLiveAuthentication.AccessToken);

            WriteLine("Done");

            Write("Authorizing with Xbox Live... ");
            var xboxLiveAuthorization = await Authentication.AuthorizeXboxLiveAsync(xboxLiveAuthentication.Token);

            WriteLine("Done");

            var settings = GetSettings();

            settings.AccessToken       = windowsLiveAuthentication.AccessToken;
            settings.RefreshToken      = windowsLiveAuthentication.RefreshToken;
            settings.ExpiresAt         = DateTime.UtcNow.AddSeconds(windowsLiveAuthentication.ExpiresIn - 40);
            settings.XboxUserId        = xboxLiveAuthorization.DisplayClaims.Xui[0].XboxUserId;
            settings.Token             = xboxLiveAuthorization.Token;
            settings.AgeGate           = xboxLiveAuthorization.DisplayClaims.Xui[0].AgeGate;
            settings.Gamertag          = xboxLiveAuthorization.DisplayClaims.Xui[0].Gamertag;
            settings.UserHeaderSession = xboxLiveAuthorization.DisplayClaims.Xui[0].UserHeaderSession;
            SetSettings(settings);

            WriteLine();
            WriteLine(" --- ");
            WriteLine();
            WriteLine("Signed in as {0} ({1}) - {2} account.", settings.Gamertag, settings.XboxUserId, settings.AgeGate);
        }