2016-01-11 3 views
0

J'utilise python-social-auth pour connecter les utilisateurs à mon application nous. Tout fonctionne comme prévu pour créer des comptes utilisateur, les connecter, etc.Comment voir si l'utilisateur a demandé l'autorisation demandée en Python-Social-Auth

Maintenant, je demande également l'autorisation publish_actions de l'utilisateur. Lorsque je fais cela, je vois l'étape de la demande lorsque j'essaie de me connecter, alors je sais que Facebook est demandé correctement cette permission. Cependant, je ne peux pas comprendre comment découvrir à partir de la réponse si l'utilisateur a approuvé cette autorisation. Je veux stocker cela afin que j'expose seulement les bonnes parties de l'interface utilisateur en fonction du choix de l'utilisateur pour autoriser ou refuser la permission.

Voilà comment je demande la permission:

SOCIAL_AUTH_FACEBOOK_SCOPE = [ 'email', 'publish_actions' ] 

Et pour params supplémentaires que j'ai les suivantes:

SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = { 
    'fields': 'id,name,email', 
} 

je besoin d'ajouter email à la liste afin d'exposer la valeur e-mail retourné de FB à mon pipeline d'authentification.

Si le pipeline est interrompu et l'authentification est annulée j'essaie d'ajouter publish_actions à ce champ,:

SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = { 
    'fields': 'id,name,email,publish_actions', # <-- this causes a failure in auth pipeline 
} 

Sans publish_actions noté comme un param supplémentaire, je ne vois pas d'autres données qui indique si l'utilisateur a approuvé la permission. Comment puis-je le découvrir?

Répondre

0

Vous pouvez faire une demande pour /me/permissions/ en utilisant le jeton d'accès utilisateur, qui vous montrera quelles autorisations l'utilisateur a accordées à votre application.

Vous pouvez également faire en sorte que la boîte de dialogue de connexion renvoie directement les étendues accordées dans l'URL directe (see parameter return_scopes) - que cela puisse ou non être facilement ajouté à la boîte de dialogue de connexion, je ne sais pas.

+0

On dirait que quelqu'un (moi) a besoin de créer un patch et une demande de pull pour cela. Merci! – seawolf