我正在构建没有客户端界面的应用程序。
在设置步骤:用户使用oauth一次通过浏览器登录服务器,然后服务器确保已识别客户端。
从那时起,没有浏览器受到侵害。这一切都在后台发生。 然后,只要可以验证用户身份,它就始终代表用户执行操作。 这意味着我的服务器有时需要调用oauth提供程序以验证用户是否仍然存在。 到目前为止,我只使用过google oauth:偶尔,我会调用refreshtoken api,并从服务器端无限期地获取新令牌。 (获得用户令牌时,您需要请求“离线访问”)。
现在,我也想使用facebook,但是在阅读它们的API时,我没有提到服务器刷新令牌的可能性: https://developers.facebook.com/docs/facebook-login/access-tokens/refreshing/ 看起来这一切都必须从客户端设备完成。 由于我没有客户端设备,这是否意味着我无法使用Facebook编写此类应用?
答案 0 :(得分:0)
我认为您的情况可以通过Facebook的机制来解决。但是,如果使用长期访问令牌时发生某些错误,则需要支持重新登录。发生这种情况的原因可能是Facebook采取了安全措施(例如:-数据泄露,密码泄露),或者是用户撤消了令牌或更改了密码,或者是较长时间不使用令牌时。
要遵循的步骤(根据他们的文档)
这些是短暂的
寿命短的令牌的寿命通常约为一两个小时
Exchanging Short-Lived Tokens for Long-Lived Tokens
即使不使用它们,它们的使用寿命也可以达到60天左右。
长寿令牌通常持续约60天。
基本上,一旦获得了长期存在的令牌,就可以从服务器应用程序中使用它。在此过程中,您需要一个仅使用浏览器的客户端来获取短暂的访问令牌。
但是如前所述,这些令牌可以过期,
当使用您的应用的用户向Facebook的服务器发出请求时,这些令牌每天刷新一次。 如果没有请求,令牌将在大约60天后过期,该人将不得不再次通过登录流程来获取新令牌。
因此您将需要通过上述两个步骤来获取新的。