2017-09-22 3 views
0

Ich habe versucht, das Facebook Authentication Login in einer Web-App zu implementieren, aber da ist etwas, was ich nicht herausfinden konnte. Ich weiß, für einige erfahrene Entwickler da draußen dies eine ziemlich dumme Frage ist aber, kann mir jemand erklären, diesen Code-Schnipsel ?:OWIN Facebook Authentifizierung - Was bedeutet 'Kontext'?

public class FacebookAuthProvider : FacebookAuthenticationProvider 
    { 
     public override Task Authenticated(FacebookAuthenticatedContext context) 
     { 
      context.Identity.AddClaim(new Claim("ExternalAccessToken", context.AccessToken)); 
      return Task.FromResult<object>(null); 
     } 
    } 

Soweit ich weiß Zusammenhang auf die Daten in einer HTTP Anfrage bezieht sich , Recht? Wenn das so ist, wenn wir tun context.AccessToken der Leitfaden sagt, dass das von Facebook festgelegt wurde. Wie ist das überhaupt möglich? Was ist der Fluss dort?

Er sagt, ich zitiere:

Wie I'mentioned Anfang dieses Token ist für den externen Provider und von Google oder Facebook ausgegeben, nachdem wir sie erhalten haben wir müssen zuweisen es um benutzerdefinierte Anspruch namens "ExternalAccessToken", so dass es im Anfragekontext für die spätere Verwendung verfügbar ist.

Ich habe das nicht verstanden. Kann mir bitte jemand erklären? Vielen Dank im Voraus.

Wie ich schon sagte, ich weiß, es ist eine dumme Frage, aber ich bin die Art von Person, die wissen will, wie alles hinter den Kulissen funktioniert.

- EDIT - Also, Facebook stellt die Anfrage und sendet ein AccessToken. Dann speichern wir es im selben Anfragekontext wie eine Forderung. Ist das was passiert? Wenn ja, wann wird dieser Anfragekontext zerstört? (Wenn die Anfrage erledigt ist, duh) Ja, aber wann endet diese Anfrage? Ist es nicht nach dem Senden des Tokens?

Antwort

0

Wenn Sie sich gegen einen externen Anbieter authentifizieren, z. Facebook leiten Sie Ihren Kunden auf die "Facebook Login-Seite" um (nicht wirklich die Login-Seite). Dort gibt der Benutzer seine Zugangsdaten ein und Facebook validiert sie. Dann leitet Facebook mit einem Autorisierungscode, den Sie gegen ein Zugriffstoken eintauschen können, zurück auf Ihre Seite.

All dies wird von der Authentifizierungs-Middleware von asp.net durchgeführt, wenn Sie einen externen Autorisierungsanbieter konfigurieren. Ich kenne die Middleware nicht gut, aber ich gehe davon aus, dass der Kontext vorübergehend ist (pro Anfrage), aber das sollte nicht viel ausmachen.

Dieses Bild stammt aus here, wo Sie mehr über den OAuth 2.0-Auth-Code Grant erfahren können.

enter image description here

Verwandte Themen