Я реализовал аутентификацию Google с помощью WebAuthenticationBroker, как показано ниже. Он отлично работает на рабочем столе или Surface с использованием той же учетной записи Google, но когда я пробую его на Xbox, он не работает.
string authString = "https://accounts.google.com/o/oauth2/auth?client_id=" + Uri.EscapeDataString(ClientID);
authString += "&scope=openid%20email%20profile";
authString += $"&redirect_uri={Uri.EscapeDataString(RedirectURI)}";
authString += $"&code_challenge={code_challenge}";
authString += $"&code_challenge_method={code_challenge_method}";
authString += "&response_type=code";
authString += "&include_granted_scopes=true";
string endURL = "https://accounts.google.com/o/oauth2/approval";
Uri startURI = new Uri(authString);
Uri endURI = new Uri(endURL);
var receivedData = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, startURI, endURI);
В UWP я получаю Approval_Code и полную информацию о профиле, но в Xbox ответ выглядит примерно так:
{https://accounts.google.com/o/oauth2/approval?as=xxxxxxxx=none&xsrfsign=xxxxxx}
Кто-нибудь знает, что особенного в Xbox One? как это исправить?