Nie wirklich mit OAuth gearbeitet, versucht, es jetzt zu implementieren, möchte ich Zugriff Token und Profildaten von Google und Facebook erhalten. Verwenden von Xamarin.Auth.Umleitung URL für Google OAuth Android
Mit Facebook gibt es keine Probleme, ich gebe "http://www.facebook.com/connect/login_success.html" als Weiterleitungs-URL an und nachdem ich mich eingeloggt habe, geht es zurück zu der Aktivität, die ich vorher hatte.
jedoch mit Google es nicht so glatt ist - nicht ähnlich wie Facebook Login Erfolg Seiten finden konnte, fand irgendwo Vorschlag „https://www.googleapis.com/plus/v1/people/me“ zu verwenden - hat es url weiße Liste zu umleiten, aber nach dem Login Ich habe nach bekommen würde "Redirect_url_mismatch" A native application: application name
zu ihrer Dokumentation sollte ich "my.package.name:" verwenden und wieder habe ich hinzugefügt, um url whitelist umleiten, versucht, sich anzumelden, dieses Mal nach dem Anmeldebildschirm komme ich zum zweiten Bildschirm, wo ich Leseberechtigungen und danach bestätigen muss dass ich einen sehr kurzen Fehler bekomme wie "com.my.package: /? oauthparameterX = value1 ...." und werde erneut zum Berechtigungsbildschirm weitergeleitet.
Hier ist meine komplette OAuth2Authenticator:
var auth = new OAuth2Authenticator(
clientId: SocialIds.GooglePlusId,
clientSecret: SocialIds.GooglePlusSecret,
scope: OAuthUrl.GoogleScope,
authorizeUrl: new Uri(OAuthUrl.GoogleAuthorize),
redirectUrl: new Uri("https://www.googleapis.com/plus/v1/people/me"),
accessTokenUrl: new Uri("https://accounts.google.com/o/oauth2/token"),
getUsernameAsync: null);
auth.AllowCancel = false;
Urls:
public static string GoogleAuthorize = "https://accounts.google.com/o/oauth2/auth";
public static string GoogleScope = "https://www.googleapis.com/auth/userinfo.email";
public static string GoogleRedirect = "https://www.googleapis.com/plus/v1/people/me";
public static string GoogleUserInfo = "https://www.googleapis.com/oauth2/v1/userinfo?access_token={0}";