2016-08-14 4 views
1

Setup:azur-Mobile-Apps-Client - invokeApi Unerlaubte

Mit der js Bibliothek und im Anschluss an die clientseitige Login/Auth Fluss meiner C# Xamarin Projekte.
CORS ist Setup und Erstanmeldung ist in Ordnung:

this.client = new WindowsAzure.MobileServiceClient(<endpoint>); 
this.client.login(<provider>); 

ich den zurückgegebenen "userId" speichern und "mobileServiceAuthenticationToken" für die zukünftige Verwendung.

Problem:

aufrufen invokeApi von azur Mobile-Apps-Client:

this.client.invokeApi("myCustomerController", { method: 'GET' }) 

kehrt:

401 (Unauthorized)

Am Ich vermisse etwas? Ich erwarte, dass der Client bereit ist, Anrufe an meine Back-End-Dienste zu tätigen.

Ich habe versucht, den bestehenden Client direkt nach dem Login ohne Erfolg zu verwenden.
Es schlägt auch fehl, wenn das "userId" und "mobileServiceAuthentication-Token" eines neuen Clients festgelegt wird.

Der benutzerdefinierte ApiController, den ich anrufe, funktioniert gut, wenn er von woanders angerufen wird (z. B. C# MobileServiceClient).

+0

Erhalten Sie eine Ablaufverfolgung des Aufrufs invokeApi und sehen Sie, was die Header sind. Möglicherweise post sie? –

Antwort

0

Ich nahm an, der Login würde den Client zur Verwendung bereit, aber nicht in meinem Fall. Ich musste login aufrufen, die userId und token im Ergebnis zurückgeben, dann currentUser manuell setzen, bevor Sie zukünftige Anfragen machen.

this.client = new WindowsAzure.MobileServiceClient("https://..."); 
this.client.currentUser = { 
     userId: "xxxxx", 
     mobileServiceAuthenticationToken: "xxxxx"} 
+0

Ich habe diese Funktionalität letzte Woche mit der neuesten Version des Clients verwendet, und die currentUser-Eigenschaft manuell zu setzen, war nicht erforderlich. Es könnte etwas sein, das in einer späteren Version behoben wurde. Welche Version des Clients verwenden Sie? –

+0

login stellt den aktuellen Benutzer ein, wenn Versprechen erfüllt wird – n00b

0

Die Login Methode gibt ein Versprechen. Können Sie bestätigen, dass Sie tatsächlich darauf warten, dass das Versprechen erfüllt wird, bevor Sie fortfahren, einen Anruf invokeApi zu tätigen?

Verwandte Themen