2017-08-18 2 views
3

Actuellement, je développe l'application Xamarin Forms et j'ai ajouté l'authentification Google. Voici mon code de PCL:Xamarin Forms Google Authenticateion, Erreur: disallowed_useragent

 
var authenticator = new OAuth2Authenticator(
    clientId, 
    null, 
    Constants.Scope, 
    new Uri(Constants.AuthorizeUrl), 
    new Uri(redirectUri), 
    new Uri(Constants.AccessTokenUrl), 

    null, 
    true); 

authenticator.Completed += this.OnAuthCompleted; 
authenticator.Error += this.OnAuthError; 

AuthenticationState.Authenticator = authenticator; 

var presenter = new Xamarin.Auth.Presenters.OAuthLoginPresenter(); 
presenter.Login(authenticator);

J'utilise la plus récente version de Xamarin.Auth, qui est 1.5.0.3 Voici ce que je reçois: Screenshot

Je suis passé par de nombreux articles et des exemples de code, mais ressemble Peut-être que Google a mis à jour leur authentification une fois de plus. Link 1, Link 2, Link 3, Link 4. L'événement sur la page officielle de l'exemple Xamarin.Forms est invalide et ne fonctionne pas Link 5.

J'ai vérifié plusieurs exemples de code, mais encore une fois pas de succès, Sample 1 et plusieurs échantillons here. J'ai téléchargé la source et j'ai essayé de l'utiliser, m'attendant à ce que ça fonctionne, mais ils échouent aussi.

Avez-vous une solution à ce problème ou à un article qui est à jour et que vous savez qu'il fonctionne? De même l'échantillon de code serait brillant.

Merci d'avance!

+0

Cela ressemble à un émulateur Genymotion, at-il installé Chrome via le Play Store? – SushiHangover

+0

Je n'ai rien installé de plus à genymotion. http://prntscr.com/g9ye5c http://prntscr.com/g9yei5 Il a par défaut google, mais je peux essayer d'installer pas de chrome. –

Répondre

2

Sur Android, Google requiert l'utilisation de Chrome Custom Tabs au lieu d'un WebView pour des raisons de sécurité.

Si vous utilisez un émulateur (ou périphérique) qui n'a pas Chrome installé (pré-installé de l'OEM ou via le Play Store), puis Xamarin.Auth avant de revenir automatiquement à l'aide d'un WebView . Cela sera accepté par Google dans certaines parties du monde (c'est-à-dire en Chine où Chrome ne sera peut-être pas préinstallé par les fabricants d'appareils), sinon Google rejettera les clients WebView via l'erreur disallowed_useragent.

Si vous utilisez un émulateur GenyMotion, installez Chrome via le Play Store. Si vous n'avez pas installé le Play Store, installez les GApps (via http://opengapps.org)

+0

Celui-ci a fonctionné! Merci beaucoup! –