当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《FacebookOauth2.0访问令牌是否过期?》经验,为你挑选了6个好方法。

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



1> Tendrid..:

挖了一下之后,我发现了这个.这似乎是答案:

更新(11/April/2018)

该令牌将在约60天后过期.

当使用您的应用的用户向Facebook的服务器发出请求时,令牌将每天刷新一次,最多90天.

所有访问令牌需要在使用您的应用程序的人的同意下每90天续订一次.

Facebook变更公告(10/04/2018)

Facebook更新了令牌到期页面(10/04/2018)

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

它是一个请求的权限值.

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

UPDATE

offline_access权限已被删除.

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


根据他们的[api文档](http://developers.facebook.com/docs/authentication/),自2012年5月2日起将不再支持offline_access.
为此,我开始了一个开源库,对你们来说可能有些用处.它是一个oAuth lib,旨在通过oAuth实现支持所有社交网络.它已经支持扩展权限,包括离线发布.https://code.google.com/p/socialoauth/

2> PrateekSaluj..:

试试这可能会对你有所帮助

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获取到期值..


我想通知你,fb已经改变了他的api&现在没有终身令牌可用,现在离线访问将有效60天.

3> Tripp Lilley..:

请注意,Facebook现在正在弃用offline_access权限,以支持您可以请求"升级"到期的令牌.我现在正在处理这个,我自己,所以我没有更多的话要说,但这个文档可能会有所帮助:

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



4> David Pope..:

我带着与OP相同的问题来到这里,但是建议使用offline_access的答案正在为我带来危险信号.

安全方面,离线访问用户的Facebook帐户在质量上是不同的,远比仅使用Facebook进行单点登录更强大,不应轻易使用(除非你真的需要它).当用户授予此权限时,"应用程序"可以随时随地检查用户的帐户.我将"应用程序"放在引号中,因为它实际上是任何具有凭据的工具 - 您可以编写一整套与Web服务器无关的工具,这些工具可以访问用户同意分享给那些的任何信息.证书.

我不会使用此功能来解决短令牌生命周期; 这不是它的预期目的.实际上,令牌生存期本身就是一种安全功能.我还在寻找有关正确使用这些令牌的详细信息(我可以坚持下去吗?我应该如何保护它们?Facebook是否将OAuth 2.0"刷新令牌"嵌入主要内容中?如果没有,它在哪里和/或者如何刷新?),但我很确定offline_access不是正确的方法.



5> TerryMatula..:

是的,它们确实会过期.有一个'expires'值与'access_token'一起传递,从我可以告诉它约2小时.我一直在寻找,但我没有办法要求更长的到期时间.


如果您请求'offline_access'权限,则令牌不会过期.

6> z3cko..:

因为我有同样的问题 - 请参阅ben biddington关于此主题的优秀帖子,他用错误的令牌和正确的类型来澄清所有这些问题以发送请求.

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

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有