首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Facebook OAuth2访问令牌过期后刷新它的正确方法是什么?

问在Facebook OAuth2访问令牌过期后刷新它的正确方法是什么?
EN

Stack Overflow用户
提问于 2011-01-07 03:05:59
回答 6查看 42.1K关注 0票数 55

据我所知,这是使用OAuth2 API的新Facebook画布应用程序的基本过程:

  1. 重定向到(或让用户单击链接到)应用程序的授权URL
  2. 用户授权并重定向到回调URL
  3. 回调使用"code“参数来获取访问令牌。
  4. 访问令牌与Graph一起使用,用于提取或推送信息

问题是访问令牌的过期时间相对较快,需要“刷新”,因此我的问题是:( 1)除了尝试使用令牌之外,如何检测令牌已过期,只需获取一个错误?2)获得新令牌的最佳做法是什么?

目前,我只检测到试图使用访问令牌获取用户信息时出错,然后再次重定向到授权URL --因为他们已经授权了该应用程序一个空白页,并且它们被重定向回我的应用程序回调,在那里我得到了一个新的令牌。太笨重了,真不敢相信这是正确的方法。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-01-07 04:23:26

  1. 判断cookie是否有效的唯一方法是使用它,并在它过期时捕获错误。没有轮询方法或任何东西来检查令牌是否有效。
  2. 要获得一个新的令牌,只需将用户重定向到身份验证页面即可。因为他们已经授权你的应用程序,他们将立即被重定向回你的应用程序,你将有一个新的令牌。他们不会被提示允许,因为他们已经这样做了。

简单地说,这是没有诀窍的。你已经做对了。

票数 42
EN

Stack Overflow用户

发布于 2012-04-12 22:20:10

最近,facebook对访问令牌进行了一些修改,允许定期刷新令牌。

代码语言:javascript
复制
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 

有关更多详细信息,请参阅此处:https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal

票数 27
EN

Stack Overflow用户

发布于 2013-07-31 14:37:48

代码语言:javascript
复制
//you just need more step because the access token you are getting will expire in 1 hour
    //you can overcome this in step 5

    1-Redirect to (or have user click link to) app's authorization URL
2-User authorizes and is redirected to your callback URL
3-Callback uses "code" parameter to get a access token
4-Access token is used with Graph API to pull or push information
    5-exchange short-lived access token you just got with 60 day access token
    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
    6-after 60 day the user must login again to your app and the steps from 1-5 will be repeated.
    --the real problem you will face is how to make the user visit your app page again
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4622171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档