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); } }
/// <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())); }