Esempio n. 1
0
        private AuthenticationResponse mcLogin(MicrosoftOAuthResponse msToken)
        {
            try
            {
                if (msToken == null)
                {
                    throw new ArgumentNullException("msToken was null");
                }

                var xbox = new XboxAuth();
                var rps  = xbox.ExchangeRpsTicketForUserToken(msToken.AccessToken);
                var xsts = xbox.ExchangeTokensForXSTSIdentity(rps.Token, null, null, XboxMinecraftLogin.RelyingParty, null);

                if (!xsts.IsSuccess)
                {
                    var msg = "";
                    if (xsts.Error == XboxAuthResponse.ChildError)
                    {
                        msg = "Child error";
                    }
                    else if (xsts.Error == XboxAuthResponse.NoXboxAccountError)
                    {
                        msg = "No Xbox Account";
                    }

                    MessageBox.Show($"Failed to xbox login : {xsts.Error}\n{xsts.Message}\n{msg}");
                    return(null);
                }

                var mclogin = new XboxMinecraftLogin();
                var mcToken = mclogin.LoginWithXbox(xsts.UserHash, xsts.Token);
                return(mcToken);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                return(null);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Request an access token on behalf of an Xbox Live user.
        /// </summary>
        public async Task <AccessToken> External(XboxAuth options)
        {
            var route = Routes.ExternalXbox();

            return(await RequestToken(route, options.ToContent()));
        }