ASP.NET-Web-API 2: Melden Sie sich über die native mobile (iOS) App bei einem externen Anbieter an

8

Ich habe viel gesucht und konnte keine ideale Lösung für dieses Problem finden. Ich weiß, dass es eine angebliche Lösung gibt ( WebApi ASP.NET Identity Facebook Login ) ) Einige Elemente der Lösung sind jedoch (in meinen Augen) ernsthaft hacky (z. B. Registrierung des Benutzers mit einem regulären Konto und dann Hinzufügen der externen Anmeldung, anstatt sie mit der externen Anmeldung zu registrieren).

Ich möchte eine ASP.NET Web API 2-Anwendung registrieren und authentifizieren können, nachdem ich bereits den Facebook SDK-Login für eine iOS-App verwendet habe, dh ich habe mich bereits jetzt über Facebook mit ihrem SDK authentifiziert Sie möchten sich nahtlos bei der ASP.NET-Web-API registrieren / authentifizieren. Ich möchte nicht den Prozess verwenden, bei dem ich die Webanrufe verwenden muss (/ api / Account / ExternalLogin), da dies keine gute Nutzererfahrung in einer nativen mobilen App ist.

Ich habe versucht, etwas über OWIN zu lernen, aber das .NET-Framework ist komplex und ich habe Probleme damit, dieses Problem zu lösen.

    
David Poxon 14.08.2014, 07:32
quelle

1 Antwort

0

Ich musste das heute für meine Ionic App machen. Der Web-API-Account-Controller hat seine eigene Meinung darüber, wie man Dinge macht, und der beste Weg, es zu verstehen, ist das Lesen dieses ziemlich tollen 3-teiligen Blogposts von Dominick Baier. Ссылка .

Die Art und Weise, wie ich daran gearbeitet habe, war, den Out-of-the-Box-Flow zu vergessen, aber stattdessen den accessToken über das native Facebook-Login zu verwenden und dann den folgenden Servercode aufzurufen, um 1) die Facebook-API aufzurufen Zugangs-Token, 2) von diesem Facebook-Anruf, erhalten Sie die E-Mail und ID, 3) entweder den Benutzer oder erstellen Sie es (und Login) das ist bereits Code, der im Account-Controller an anderen Orten ist, 4) Erstellen Sie die lokale Behörde JWT für nachfolgende Web-API-Aufrufe.

%Vor%

Der Code, den ich in Ionic verwende, tut dies im Grunde, um das Zugriffstoken von Facebook zu erhalten, dann rufe die Web-API auf, um eine JWT der lokalen Behörde als Träger-Token zu verwenden.

%Vor%

Scheint ziemlich sicher zu sein, aber verstehen Sie, dass ich kein Sicherheitsexperte bin, deshalb kommt dieser Code ohne Garantie und bitte lassen Sie mich wissen, wenn Sie irgendetwas grell sehen und ich werde den Code aktualisieren.

    
Sean Chase 24.12.2016 01:17
quelle