Les Jetons D'Accès Facebook 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 un jour. Si oui, est-il un moyen de demander une longue durée de vie jeton d'accès?

120
demandé sur Jared Brown 2010-04-22 05:55:38

12 réponses

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

Mise À Jour (11/Avril/2018)

  • Le jeton expirera après environ 60 jours.
  • le token sera rafraîchi une fois par jour, pour une durée maximale de 90 jours, lorsque la personne qui utilise votre application fait une demande sur les serveurs de Facebook.
  • Tous les jetons d'accès doivent être renouvelées tous les 90 jours, avec le consentement de la personne qui utilise votre application.

annonce de changement Facebook (10/04/2018)

Facebook mis à jour jeton d'expiration de la page (10/04/2018)

offline_access: Permet à votre application d'effectuer des requêtes autorisées au nom de l'utilisateur à tout moment. Par défaut, la plupart des tokens d'accès expirent après une courte période de temps pour s'assurer que les applications ne font des requêtes que pour le compte de l'utilisateur lorsque l'utilisent activement l'application. Grâce à cette permission, le jeton d'accès retourné par notre point terminal de OAuth est de longue durée.

C'est une valeur de permission demandée.

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

mise à JOUR

La permission

offline_access a été retirée il y a quelques temps.

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

62
répondu Tendrid 2018-04-12 11:10:14

essayez ceci peut être il 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 le Token d'accès à vie vous devez utiliser scope=offline_access

Signification de scope=offline_access est que: -

permet à votre application d'effectuer des requêtes autorisées au nom de l'utilisateur à tout moment. Par défaut, la plupart des tokens d'accès expirent après un peu de temps pour s'assurer que les demandes sont faites uniquement au nom de l'utilisateur, lors de ils utilisent activement l'application. Ce la permission rend le jeton d'accès retourné par notre point final OAuth longue durée de vie.

mais selon la future mise à jour de facebook la fonctionnalité offline_acees sera dépréciée pour toujours à partir du 3 octobre 2012. et l'Utilisateur sera donné 60 jours jeton d'accès de longue durée et avant l'expiration du jeton D'accès Facebook notifiera ou vous pouvez obtenir votre fonctionnalité de notification personnalisée récupérer la valeur d'expiration de L'Api Facebook..

29
répondu PrateekSaluja 2012-07-18 16:06:26

notez que Facebook déprécie maintenant la permission offline_access en faveur des tokens pour lesquels vous pouvez demander une "mise à jour" à l'expiration. Je viens juste de m'en occuper moi-même, donc je n'ai pas beaucoup plus à dire, mais ce doc peut aider:

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

21
répondu Tripp Lilley 2012-01-28 15:14:29

je suis venu ici avec la même question que L'OP, mais les réponses suggérant l'utilisation de offline_access me donnent des signaux d'alarme.

du point de vue de la sécurité, l'accès hors ligne au compte Facebook d'un utilisateur est qualitativement différent et beaucoup plus puissant que le simple fait D'utiliser Facebook pour une seule connexion, et ne doit pas être utilisé à la légère (à moins que vous en ayez vraiment besoin). Lorsqu'un utilisateur accorde cette autorisation, l'application " peut examiner le compte de l'utilisateur à partir de n'importe où à tout temps. J'ai mis" l'application " entre guillemets parce que c'est en fait n'importe quel outil qui a les justificatifs d'identité -- vous pourriez configurer toute une série d'outils qui n'ont rien à voir avec le serveur web qui peut accéder à n'importe quelle information que l'Utilisateur a accepté de partager à ces justificatifs d'identité.

Je n'utiliserais pas cette caractéristique pour travailler autour d'une courte durée de vie du jeton; ce n'est pas son but prévu. En effet, token Life lui-même est une caractéristique de sécurité. Je suis toujours à la recherche de détails sur la bonne utilisation de ces jetons (puis-je les maintenir? Comment dois/devrais-je sûr? Facebook intègre-t-il le "jeton rafraîchissement" 2.0 à l'intérieur du jeton principal? 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.

17
répondu David Pope 2010-11-16 22:40:40

Oui, ils expirent. Il y a une valeur' expires 'qui est transmise avec' access_token', et de 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.

8
répondu TerryMatula 2010-04-23 19:34:58

depuis que j'ai eu le même problème - voir l'excellent post sur ce sujet de ben biddington, qui a clarifié toutes ces questions avec le mauvais jeton et le bon type d'Envoyer pour les demandes.

http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens /

6
répondu z3cko 2010-06-18 15:09:01

vous pouvez toujours rafraîchir le jeton d'accès de l'utilisateur chaque fois que l'utilisateur se connecte à votre site via facebook. L'accès hors ligne ne peut pas garantir que vous obtenez un jeton d'accès à vie, le jeton d'accès change chaque fois que l'utilisateur vous retire l'accès à votre application ou que l'utilisateur change son mot de passe.

Cité de facebook http://developers.facebook.com/docs/authentication /

Note: si la demande n'a pas demandé offline_access autorisation, le jeton d'accès est bornée. De temps délimitée jeton d'accès également invalidé lorsque l'utilisateur se déconnecte de Facebook. Si l'application a obtenu offline_access autorisation de l'utilisateur, le jeton d'accès n'a pas de date d'expiration. Cependant il est invalidé chaque fois que l'utilisateur change son mot de passe.

supposons que vous stockez l'uid facebook de l'utilisateur et le token d'accès dans une table d'utilisateurs dans votre base de données, chaque fois que le cliquez sur le bouton" Se connecter avec facebook", vous vérifiez le statut de connexion en utilisant L'API JavaScript facebook,puis examinez le statut de connexion à partir de la réponse, si l'utilisateur s'est connecté à votre site, vous pouvez alors mettre à jour le token d'accès dans le tableau.

4
répondu imikay 2012-03-03 13:46:10

Hit pour l'échange d'un court séjour jeton d'accès pour un long séjour/sans date d'expiration(pages):

https://graph.facebook.com/oauth/access_token?             
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN 
3
répondu MPaulo 2012-06-11 03:06:54

accédez au compte facebook et modifiez les paramètres de votre application(compte -> paramètres de l'application ->permission supplémentaire de l'application qui utilise votre compte). décochez la permission (accéder à mes données lorsque je n'utilise pas l'application(offline_access)). Ensuite, face enregistrera l'émission d'un nouveau token lorsque vous vous connecterez à l'application.

1
répondu Sreekanth P 2010-05-14 11:27:05

de base le jeton facebook expire environ dans une heure. Mais vous pouvez utiliser' exchange ' token pour obtenir un token de longue durée https://developers.facebook.com/docs/facebook-login/access-tokens

GET /oauth/access_token?  
    grant_type=fb_exchange_token&           
    client_id={app-id}&
    client_secret={app-secret}&
    fb_exchange_token={short-lived-token} 
1
répondu Mr Tung 2014-05-27 13:31:37

vérifiez les éléments suivants lorsque vous interagissez avec l'api Facebook graph.

1) L'URL de connexion D'Application doit être la base de votre" redirect_uri" connexion URL: - www.x-minds.org/fb/connect/ redirect_uri - www.x-minds.org/fb/connect/redirect 2) votre "redirect_uri" devrait être le même dans les deux cas (lorsque vous demandez un code de vérification et une requête pour un access_token)) redirect_uri - www.x-minds.org/fb/connect/redirect 3) vous devriez encoder l'argument quand vous demandez un access_token 4) ne devrait pas passer l'argument (type=client_cred) lorsque vous demandez un access_token. le serveur d'autorisation délivre un jeton de session. nous ne pouvons pas utiliser ce token avec l'alias "moi" dans l'api graphique. Ce jeton aura une longueur de (40), mais un jeton de session partie aura une longueur de(81). Un token d'accès sans partie de session fonctionnera avec certains cas

par exemple: - https://graph.facebook.com/ ?access_token=116122545078207 / EyWJJYqrdgQgV1bfueck320z7MM. Mais L'API de graphique avec l'alias " moi " fonctionnera avec seulement un token avec une partie de session.

0
répondu Sreekanth P 2010-05-12 07:11:03

Je ne sais pas quand exactement les tokens expirent, mais ils le font, sinon il n'y aurait pas d'option pour donner des permissions offline.

de toute façon, exiger de l'utilisateur qu'il donne des permissions hors ligne est parfois exagéré. Selon vos besoins, il suffit peut-être que le token reste valide tant que le site est ouvert dans le navigateur de l'utilisateur. Pour cela, il peut y avoir une solution plus simple - reloguer l'utilisateur périodiquement en utilisant une iframe: facebook auto se connecter de nouveau à partir de cookie php

travaillait pour moi...

0
répondu Uri 2017-05-23 12:32:08