0

Ich habe azure Mobile Net Client 3.1.0.0 verwendet. Dies ist mein alter Code in meinem Android-Client:Azure Mobile Client 4.0 - Wie verwende ich LoginAsync?

IMobileServiceClient client; 
//for Android 
//from Microsoft.WindowsAzure.Mobile.Ext 
var user = await client.LoginAsync(Forms.Context, provider); 

Jetzt habe ich auf die neue Version 4.0 aktualisiert. Ich benötige eine Autorisierung mit einem Google-Konto. Dies ist der Code, den ich in der Dokumentation:

IMobileServiceClient client; 
var token = new JObject {{"access_token", "access_token_value"}}; 
user = await client.LoginAsync(provider, token); 

Wie kann ich "access_token_value" auf Client Android bekommen? Bitte helfen Sie mir. Ich brauche ein kleines Beispiel oder einen Verweis auf die Dokumentation.

+0

was "flow" haben Sie benutzt? der Server-Flow (wo ein Browser-Fenster erscheint und Ihr Server direkt das Access-Token bekommt und es Ihnen zurückgibt) oder der Client-Flow (wo sich die Facebook-App öffnet und Sie das Token lokal erhalten und an Ihren Server senden? hat in der alten azure sdk nicht existiert - welche würdest du gerne benutzen?) – woelliJ

Antwort

0

Ich habe dieses Problem gelöst. 1.It war notwendig, um diese Klasse zu verwenden:

Microsoft.WindowsAzure.MobileServices.MobileServiceClient client; 
var user = await client.LoginAsync(Forms.Context, provider, "{url_scheme_of_your_app}"); 

2.It ist notwendig, dies zu AndroidManifest hinzuzufügen.xml:

<activity android:name="com.microsoft.windowsazure.mobileservices.authentication.RedirectUrlActivity" 
     android:launchMode="singleTop" android:noHistory="true"> 
<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
    <data android:scheme="{url_scheme_of_your_app}" android:host="easyauth.callback" /> 
</intent-filter> 

"url_scheme_of_your_app" - Textkennung. Ex - "app911";

  1. Fügen Sie Ihre App auf die Allowed External Redirect URLs

    Ex. url app911: //easyauth.callback

Dies ist example.

1

Gemäß Ihrer Beschreibung habe ich meine Xamarin.Android-Anwendung erstellt, um dieses Problem zu testen. Für Microsoft.Azure.Mobile.Client 4.0.0, fand ich mein Projekt das sdk unter folgendem Pfad verweisen würde:

Microsoft.Azure.Mobile.Client.4.0.0\lib\netstandard1.4\Microsoft.Azure.Mobile.Client.dll

Und ich würde das gleiche Problem auftritt, wie Sie erwähnt. Dann habe ich versucht, auf Microsoft.Azure.Mobile.Client 4.0.0-alpha-001 herunterzustufen, und ich konnte die erwarteten Erweiterungsmethoden für LoginAsync finden. Zu diesem Zeitpunkt wird die sdk würde unter folgendem Pfad:

Microsoft.Azure.Mobile.Client.4.0.0-alpha-001\lib\monoandroid44\Microsoft.Azure.Mobile.Client.dll

Auch für Azure Mobile Client SDK 3.1.0 sucht der Referenzpfad wie folgt aus:

Microsoft.Azure.Mobile.Client.3.1.0\lib\monoandroid\Microsoft.WindowsAzure.Mobile.Ext.dll

Nach einigen Versuche, fand ich folgendes SDK die Erweiterungsmethode für LoginAsync unterstützt, wie folgt:

C:\Bruce\Thread Handling Projects\Bruce.AndroidApp\packages\Microsoft.Azure.Mobile.Client.4.0.0\lib\monoandroid71 enter image description here

Wie bekomme ich "access_token_value" auf Client Android? Bitte hilf mir. Ich brauche ein kleines Beispiel oder einen Verweis auf die Dokumentation.

Von Ihrem alten Code, ging ich davon aus, dass Sie Server-Flow-Authentifizierung verwenden, für die Verwendung von Server-Flow über Microsoft.Azure.Mobile.Client 4.0.0 die MonoAndroid >= 7.1 unterstützt, nahm ich an, dass Sie Ihre aktualisieren müssen Android-Version für Ihr Xamarin.android-Projekt. Oder Sie müssen auf die Version vor 4.0.0 herunterstufen. Außerdem können Sie sich auf client-managed flow und beziehen.

UPDATE:

Nach Änderung Android-Version 7.1, dann könnte ich Microsoft.Azure.Mobile.Client 4.0.0 wie folgt verwenden:

enter image description here enter image description here

Für Aufrüstung Android 7.1, könnten Sie sich auf here beziehen.

+0

Ich habe meine Antwort für den Test aktualisiert, du könntest dich darauf beziehen. –

Verwandte Themen