Facebook oauth2 API刷新令牌

时间:2019-02-23 16:59:45

标签: facebook facebook-graph-api oauth-2.0

我正在构建没有客户端界面的应用程序。

在设置步骤:用户使用oauth一次通过浏览器登录服务器,然后服务器确保已识别客户端。

从那时起,没有浏览器受到侵害。这一切都在后台发生。 然后,只要可以验证用户身份,它就始终代表用户执行操作。 这意味着我的服务器有时需要调用oauth提供程序以验证用户是否仍然存在。 到目前为止,我只使用过google oauth:偶尔,我会调用refreshtoken api,并从服务器端无限期地获取新令牌。 (获得用户令牌时,您需要请求“离线访问”)。

现在,我也想使用facebook,但是在阅读它们的API时,我没有提到服务器刷新令牌的可能性: https://developers.facebook.com/docs/facebook-login/access-tokens/refreshing/ 看起来这一切都必须从客户端设备完成。 由于我没有客户端设备,这是否意味着我无法使用Facebook编写此类应用?

1 个答案:

答案 0 :(得分:0)

我认为您的情况可以通过Facebook的机制来解决。但是,如果使用长期访问令牌时发生某些错误,则需要支持重新登录。发生这种情况的原因可能是Facebook采取了安全措施(例如:-数据泄露,密码泄露),或者是用户撤消了令牌或更改了密码,或者是较长时间不使用令牌时。

要遵循的步骤(根据他们的文档)

  1. Obtain a User access token

    这些是短暂的

      

    寿命短的令牌的寿命通常约为一两个小时

  2. Exchanging Short-Lived Tokens for Long-Lived Tokens

    即使不使用它们,它们的使用寿命也可以达到60天左右。

      

    长寿令牌通常持续约60天。

基本上,一旦获得了长期存在的令牌,就可以从服务器应用程序中使用它。在此过程中,您需要一个仅使用浏览器的客户端来获取短暂的访问令牌。

但是如前所述,这些令牌可以过期,

  

当使用您的应用的用户向Facebook的服务器发出请求时,这些令牌每天刷新一次。 如果没有请求,令牌将在大约60天后过期,该人将不得不再次通过登录流程来获取新令牌。

因此您将需要通过上述两个步骤来获取新的。