Wie benutze ich Identity-Benutzerverwaltung mit Cordova und OAuth.io?

9

Ich möchte eine Cordova Telefon App und eine Webanwendung erstellen. Sowohl die Anwendung als auch die App teilen dieselbe Datenbank.

In der mobilen App senden die Benutzeraktionen Anforderungen an einen Webdienst (über https), der in die Datenbank schreibt. In der mobilen App verwende ich Ссылка , damit sich der Nutzer bei mehreren offenen Authentifizierungsanbietern registrieren und anmelden kann. Ich versuche, es jetzt für Facebook zu machen.

Ich kann mir einfach nicht vorstellen, wie ich die Identity-Benutzerverwaltung in diesem Kontext verwenden soll. Die meisten Beispiele, die ich finde, befinden sich im Kontext einer Web-App, in der der Nutzer klickt und den Account-Controller aufruft. In meinem Fall ruft die oauth.io lib facebook auf, gibt ein Zugriffs-Token zurück, das ich an meinen Dienst übergebe.

Die cordova App übergibt das AccessToken an diese Methode an meinen serverseitigen Webdienst.

%Vor%

Ich habe es versucht:

%Vor%

Funktioniert nicht, da das usermanagement-Objekt im Konto-Controller null ist. Es gibt eine Überlastung des AccountController-Konstruktors, aber ich habe das Gefühl, dass ich die ganze Sache falsch mache.

Nehmen wir an, die Server-Seite erhält ein Facebook-Zugriffs-Token. Wie benutze ich OWIN und Identity Benutzerverwaltungssystem von dort?

    
Dave 14.11.2014, 19:25
quelle

1 Antwort

2

Ok.

Wie von einem Freund vorgeschlagen, ersetzte ich die Controller usw. von der ursprünglichen Web-API-Vorlage für die im Identity Sample Project

Hier ist die von der mobilen App aufgerufene Methode mit einem eckigen jsonp

%Vor%

Hier ist das CreateUserAsync, das ich gemacht habe

%Vor%

Und dann, wenn die mobile App meinen Web-Service zurückruft, kann ich prüfen, ob die Sitzung so ist:

%Vor%

Ja, das stimmt. Ein wenn und eine Sitzung. So wie ich es vor 13 Jahren gemacht habe.

Während ich dieses Gräuel tat, stieß ich in der Datei IdentityConfig.cs auf ein Hanging-Problem.

Offenbar ist das Problem von Microsoft bekannt und ich vermute, dass es wahrscheinlich in der Version 3 von Owin behoben ist? Aber ich wusste zu dieser Zeit nicht über diese Version 3, also folgte ich Programm hängt während der Datenbankinitialisierung .

Aus irgendeinem Grund existierte etwas von der Methode, die in seiner Lösung gepostet wurde, nicht für mich. Am Ende habe ich den Code so gut wie möglich korrigiert:

%Vor%

Auch für den Fall, dass sich jemand fragt, wie man den SVC-Service vom Handy aus anruft, hier ist der Code.

(Es ist ein bisschen unordentlich, aber die wichtigen Teile sind da.) (Beachten Sie, dass ich Ссылка )

verwende %Vor%

Probleme

Ab sofort erstelle ich keine Anmeldung, nur ein Benutzer wird erstellt.

Außerdem ist die OWIN-Version des Projekts 2.0, und apparent ist eine 3.0 vorhanden.

Um ehrlich zu sein, je mehr ich online lese, desto mehr fühle ich mich, als ob alles, was ich getan habe, ein großer Hack ist, um den richtigen Weg zu finden. Ich konnte es einfach nicht herausfinden. Dieses Ding ist unglaublich riesig, verwirrend, chaotisch und kaputt. Ja, ich habe meiner Antwort eine Meinung hinzugefügt.

    
Dave 21.11.2014, 19:16
quelle