2017-09-22 3 views
0

J'essayais de mettre en œuvre la connexion d'authentification Facebook dans une application Web, mais il y avait quelque chose que je ne pouvais pas comprendre. Je sais que pour certains développeurs expérimentés là-bas c'est une jolie question stupide mais, quelqu'un peut me expliquer cet extrait de code ?:Authentification Facebook OWIN - Que signifie «contexte»?

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

Pour autant que je sais contexte se réfère aux données dans une requête HTTP , droite? Si c'est le cas, quand nous faisons context.AccessToken le guide dit que c'est réglé par Facebook. Comment est-ce possible? Quel est le flux là-bas?

Il dit et je cite:

Comme I'mentioned plus tôt ce jeton est pour le fournisseur externe et émis par Google ou Facebook, après que nous avons reçu, nous avons besoin de attribuons à la coutume réclamation nommée "ExternalAccessToken" donc ce sera disponible dans le contexte de la demande pour une utilisation ultérieure.

Je n'ai pas ça. Quelqu'un peut-il expliquer, s'il vous plaît? Merci d'avance.

Comme je l'ai dit, je sais que c'est une question stupide mais je suis le genre de personne qui veux savoir comment tout fonctionne dans les coulisses.

- EDIT - Ainsi, Facebook fait la demande et envoie le long d'un AccessToken. Ensuite, nous le stockons dans le même contexte de requête qu'une revendication. Est-ce que c'est ce qui se passe? Si oui, alors, quand le contexte de cette requête est-il détruit? (Quand la demande est faite, duh) Oui mais, quand cette requête finit-elle? N'est-ce pas après avoir envoyé le jeton?

Répondre

0

Lorsque vous authentifiez un fournisseur externe, par ex. facebook vous redirigez votre client vers la "page de connexion facebook" (pas vraiment la page de connexion). Là, l'utilisateur entre ses informations d'identification et facebook les valide. Puis Facebook redirige vers votre page avec un code d'autorisation que vous pouvez échanger contre un jeton d'accès.

Tout cela se fait par le middleware d'authentification de asp.net lorsque vous configurez un fournisseur d'autorisation externe. Je ne connais pas bien le middleware mais je suppose que le Context est transitoire (par requête) mais cela ne devrait pas avoir beaucoup d'importance.

Cette image est tirée de here où vous pouvez lire plus sur le OAuth 2.0 auth subvention de code.

enter image description here