Facebook Oauth 2.0访问令牌是否过期?



5 Answers

试试这可能会对你有帮助

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/

要获得生命期访问令牌,您必须使用scope=offline_access

scope=offline_access含义是: -

让您的应用程序随时代表用户执行授权请求。 默认情况下,大多数访问令牌在短时间后过期,以确保应用程序仅在主动使用应用程序时代表用户发出请求。 此权限使我们的OAuth端点返回的访问令牌长久存在。

但根据facebook未来的升级版本,offline_acees功能将从2012年10月3日起永远不推荐使用,并且用户将获得60天长期访问令牌,并且在访问令牌到期之前Facebook会通知您,或者您可以获得自定义通知功能从Facebook Api获取到期值

Question

我在Facebook上玩Oauth 2.0授权,并想知道Facebook传出的访问令牌是否过期。 如果是这样,是否有办法请求长期访问令牌?




点击此按钮以交换一个短暂的生存访问令牌以用于长期生活/非到期(页面)一个:

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 






我来到这里的问题与OP相同,但提示使用offline_access的答案正在为我提高红旗。

从安全角度来看,对用户的Facebook账户进行离线访问与使用Facebook进行单一登录相比,质量不同,功能也更加强大,不应该轻易使用(除非您真的需要它)。 当用户授予此权限时,“应用程序”可以随时随地检查用户的帐户。 我把“应用程序”放在引号中,因为它实际上是任何具有凭证的工具 - 您可以编写一整套与Web服务器无关的工具,它可以访问用户同意分享给用户的任何信息证书。

我不会使用此功能来解决令牌寿命短的问题; 这不是它的预期目的。 的确,令牌生命周期本身就是一项安全功能。 我仍然在寻找有关这些令牌的正确用法的详细信息(我可以坚持它们吗?我应该如何保护它们?Facebook是否将OAuth 2.0“刷新令牌”嵌入到主令牌中?如果不是,它在哪里? /或我如何刷新?),但我很确定offline_access不是正确的方法。







我不知道令牌到期的确切时间,但是他们会这样做,否则就不会有选项提供离线权限。

无论如何,有时要求用户给予离线权限是一个矫枉过正。 根据您的需要,只要网站在用户的浏览器中打开,令牌就可以保持有效。 为此,可能会有一个更简单的解决方案 - 定期使用iframe 重新定义用户: facebook自动从cookie中重新登录php

为我工作......






Related