0

Ich arbeite an ASP.NET Core API und muss Option hinzufügen, um mit sozialen Dienst registrieren, z. Facebook. Szenario sollte z.B. Android App-Nutzer sollten beim Start auf "Mit Facebook anmelden" klicken, dann sollte Facebook-App geöffnet werden, dann sollte der Nutzer auf "Bestätigen" klicken und in der App registriert werden.ASP.NET Core API Facebook-Registrierung/Login

Default Asp.net Web Beispiel zeigt, wie es mit der Webseite auf dem gleichen Host wie APIs mit Rückkehr Challenge() Antwort, die im Grunde HTML-Seite zurückgibt, wie ich verstanden habe.

Was ist der richtige Ablauf hier und gibt es Bibliotheken dafür? Wie ich jetzt verstehe Flow ist etwa so: 1. API-Server hat meine AppId und AppSecret von Facebook 2. Android-App sollte "Anwendung Token" von API-Server 3. Android-App sollte Facebook mit diesem Token aufrufen und erhalten "User Confirmation Token" 4. Android-App sollte "User Confirmation Token" an API-Server übergeben 5. API-Server sollte Facebook mit "AppId/AppSecret Token + Benutzer-Confirmation-Token" aufrufen und Details über den Benutzer erhalten und lokalen Benutzer in der Datenbank erstellen .

public IActionResult ExternalLogin(string provider, string returnUrl = null) { 
    // Request a redirect to the external login provider. 
    var redirectUrl = Url.Action("ExternalLoginCallback", "Account", new { ReturnUrl = returnUrl }); 
    var properties = signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl); 
    return Challenge(properties, provider); 
: 6. API-Server sollte 7. Android App sollte

Also zumindest ich möchte verstehen, was diesen Code von Beispiel ersetzen mit

"API-Token" für diesen Benutzer erstellen verwenden "API-Token"

Antwort

1

die Sache zu verstehen ist die Standard-Web-App-Vorlage in VS 2015 verwendet ASP.NET-Identität mit Cookie-Authentifizierung. Cookieauth funktioniert für Webbrowser, aber damit eine Android-App authentifiziert werden kann, benötigen Sie zusätzlich zu oder anstelle von Cookies JWT-Tokens. Es ist nichts eingebaut von Microsoft dafür im asp.net Kern zur Verfügung gestellt, die Empfehlung ist zu verwenden IdentityServer4

Verwandte Themen