4

J'ai lu la documentation ici: django-rest-framework-social-oauth2, mais tout n'est pas très clair pour moi (c'est la première fois que je travaille avec ça).Comment utiliser le django-rest-framework-social-oauth2 avec facebook Oauth2?

et à la fin, il montre une certaine configuration de la façon de faire les réglages pour utiliser facebook Oauth2. Et il y a ces informations sur les docs:

Vous pouvez tester ces paramètres en exécutant la commande suivante:

curl -X POST -d “grant_type=convert_token&client_id=<client_id>&client_secret=<client_secret>&backend=facebook&token=<facebook_token>” http://localhost:8000/auth/convert-token 

Cette demande renvoie le « access_token » que vous devez utiliser sur toutes requêtes HTTP avec DRF . Qu'est-ce qui se passe ici, c'est que nous sommes convertir un jeton d'accès tiers (user_access_token) dans un jeton d'accès à utiliser avec votre API et ses clients ("access_token"). Vous devez utiliser ce jeton sur chaque communication et entre votre système/application et votre API pour authentifier chaque demande et pour éviter l'authentification avec FB à chaque fois.

Est-ce que cela signifie que ce point final, je pourrai en quelque sorte « override » une méthode sing up création d'un utilisateur sur ma demande avec le même user_access_token qu'elle a sur facebook?

Si cela est juste, à ma connaissance. Après avoir obtenu la réponse FB.getLoginStatus, je serai en mesure de faire des appels sur mes propres points de terminaison API se référant à l'utilisateur connecté avec son facebook user_acess_token (Cela est également le même sur mon système).

Je suppose que je devrais également ajouter des jetons de comptes sociaux aux modèles d'utilisateur?

Ai-je raison?

Répondre

1

Je pourrais le tester avec un jeton de test de facebook et il se comporte comme je m'y attendais comme je l'ai écrit dans ma question.

+1

Comment avez-vous obtenu le jeton d'accès? Je suppose que l'ID Cleint et le secret client est ce que nous obtenons de fb après l'enregistrement de notre application. S'il vous plaît aider – ajaysingh

+0

@AjaySingh vous pouvez faire une demande javascript en utilisant la [documentation facebook] (https://developers.facebook.com/docs/facebook-login/web) et il vous donnera un access_token pour tester votre backend. Et oui, 'client_secret' et' client_id' sont ceux que vous obtenez après l'enregistrement de votre application. –

+0

Je voulais utiliser django-rest-framework-social-oauth2 pour cela, mais il continue d'obtenir 404 car mon projet n'a pas de route vers l'URL "http: // localhost: 8000/auth/convert-token" Je dois ajouter quelque chose à mon urls.py? – ajaysingh