125 votes

Les jetons d'accès à Facebook Oauth 2.0 expirent-ils?

Je joue avec l'autorisation Oauth 2.0 sur Facebook et je me demandais si les jetons d'accès Facebook expiraient. Si oui, existe-t-il un moyen de demander un jeton d'accès longue durée?

64voto

Tendrid Points 641

Après avoir creusé un peu, j'ai trouvé ceci. Il semble être la réponse:

offline_access: Permet à votre application pour effectuer autorisé les demandes pour le compte de l'utilisateur à tout moment. Par défaut, la plupart des jetons d'accès à expiration après une courte période de temps afin d'assurer des applications uniquement à faire des demandes de la part de l'utilisateur, lors de l'sommes activement à l'aide de l'application. Cette autorisation rend le jeton d'accès retournés par notre OAuth point de terminaison de longue durée.

Ses une autorisation de la valeur demandée.

http://developers.facebook.com/docs/authentication/permissions

Mise à JOUR

offline_access autorisation a été supprimé il y a longtemps.

https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/

30voto

PrateekSaluja Points 7387

Essayez ceci est peut-être ça aidera à plein pour vous

https://graph.facebook.com/oauth/authorize?
    client_id=127605460617602&
scope=offline_access,read_stream,user_photos,user_videos,publish_stream&
    redirect_uri=http://www.example.com/

Pour obtenir la durée de vie Jeton d'Accès, vous devez utiliser scope=offline_access

Sens de l' scope=offline_access est que :-

Permet à votre application pour effectuer autorisé les demandes au nom de l'utilisateur à tout moment. Par défaut, la plupart des jetons d'accès à expiration après une courte période de temps afin d'assurer des applications uniquement à faire des demandes au nom de l'utilisateur, lors de l'sommes activement à l'aide de l'application. Cette l'autorisation rend le jeton d'accès retournés par notre OAuth point de terminaison longue durée de vie.

Mais selon facebook futurs de remise en état de la offline_acees fonctionnalité sera obsolète pour, jamais depuis le 3 octobre, 2012. et l'utilisateur disposera de 60 jours à long terme jeton d'accès et avant l'expiration du jeton d'accès Facebook avisera, ou vous pouvez obtenir votre coutume fonctionnalité de notification de l'extraction de la valeur d'expiration de l'Facebook Api..

20voto

Tripp Lilley Points 1111

Notez que Facebook déconseille maintenant la permission offline_access en faveur de jetons pour lesquels vous pouvez demander une "mise à niveau" à l'expiration. Je suis juste en train de me débrouiller avec ça, donc je n'ai pas grand chose à dire, mais ce document peut aider:

https://developers.facebook.com/docs/offline-access-deprecation/

17voto

David Pope Points 3501

Je suis venu ici avec la même question que l'OP, mais les réponses suggérant l'utilisation de offline_access soulève des drapeaux rouges pour moi.

De vue de la sécurité, l'obtention de l'accès hors connexion à un utilisateur de Facebook compte est qualitativement différente et beaucoup plus puissant que simplement à l'aide de Facebook pour l'authentification unique, et ne doit pas être utilisé à la légère (à moins que vous vraiment besoin). Lorsqu'un utilisateur accorde cette autorisation, l'application " peut examiner le compte de l'utilisateur à partir de n'importe où à tout moment. J'ai mis "à la demande" entre guillemets, car c'est un outil qui possède les informations d'identification -- vous pourriez script en place toute une série d'outils qui n'ont rien à voir avec le serveur web qui peut accéder à quoi que les infos de l'utilisateur a accepté de partager à ces informations d'identification.

Je ne voudrais pas utiliser cette fonction pour contourner une courte durée de vie du jeton; ce n'est pas son but. En effet, la durée de vie du jeton lui-même est une fonctionnalité de sécurité. Je suis toujours à la recherche pour plus de détails sur l'utilisation appropriée de ces jetons (puis-je les conserver? Comment dois/devrais-je sûr? Ne Facebook incorporer le protocole OAuth 2.0 "actualiser jeton" à l'intérieur de la principale? Si non, où est-il et/ou comment puis-je actualiser?), mais je suis sûr que offline_access n'est pas de la bonne façon.

8voto

TerryMatula Points 630

Oui, ils expirent. Il y a une valeur 'expires' qui est transmise avec 'access_token', et d'après ce que je peux dire, c'est environ 2 heures. J'ai cherché, mais je ne vois pas comment demander un délai d'expiration plus long.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X