private async void AuthenticateAsync_Click(object sender, RoutedEventArgs e) { if (RequestUriBox.Text == "" || CallbackUriBox.Text == "") { return; } Uri requestUri = new Uri(RequestUriBox.Text); Uri callbackUri = new Uri(CallbackUriBox.Text); XboxGameBarWebAuthenticationResult result = await gameBarWebAuth.AuthenticateAsync( XboxGameBarWebAuthenticationOptions.None, requestUri, callbackUri); Debug.WriteLine("ResponseData: " + result.ResponseData); Debug.WriteLine("ResponseStatus: " + result.ResponseStatus.ToString()); Debug.WriteLine("ResponseErrorDetail: " + result.ResponseErrorDetail); }
public async void LoginWithXboxBroker_OnClick(object sender, RoutedEventArgs e) { AuthWaiting.Visibility = Visibility.Visible; // original bungie redirect url: ghost-overlay:///oauth-return var requestUri = new Uri(AppState.bungieApi.GetAuthorisationUrl()); var callbackUri = new Uri("https://destiny.report/ghost-auth-return"); XboxGameBarWebAuthenticationResult result = await gameBarWebAuth.AuthenticateAsync( XboxGameBarWebAuthenticationOptions.None, requestUri, callbackUri); AuthWaiting.Visibility = Visibility.Collapsed; if (result.ResponseStatus == XboxGameBarWebAuthenticationStatus.Success) { Debug.WriteLine($"Auth has returned successfully with data {result.ResponseData}"); var responseUri = new Uri(result.ResponseData); var parsed = HttpUtility.ParseQueryString(responseUri.Query); var authCode = parsed["code"]; Debug.WriteLine($"authCode: {authCode}"); await AppState.bungieApi.GetOAuthAccessToken(authCode); Debug.WriteLine($"New token data: {AppState.Data.TokenData}"); if (AppState.Data.TokenData.IsValid()) { this.Frame.Navigate(typeof(WidgetMainView), widget); } else { throw new Exception("Exchanged code for token, but the TokenData is not valid??"); } } else { BrowserLoginStack.Visibility = Visibility.Visible; } }