我正在构建一个没有客户端接口的应用程序。
在设置步骤中:用户一旦使用OAuth浏览器将登录到服务器,并且服务器确保确定客户端。
从这一点上开始,没有浏览器会被侵入。这一切都发生在后台。然后,只要可以验证用户,它就会不断代表用户行动。这意味着偶尔,我的服务器需要致电OAuth提供商来验证用户仍然存在。到目前为止,我只使用了Google Oauth:不时,我会调用Refreshtoken API,并从服务器端无限地获得新的令牌。(获得用户令牌时,您需要要求"离线访问")。
现在我也想使用Facebook,但是阅读他们的API,我认为服务器可以刷新它是令牌的可能性:https://developers.facebook.com/docs/facebook-login/access-tokens/refreshing/看起来这一切都必须从客户端设备完成。由于我没有客户端设备,这是否意味着我无法使用Facebook编写此类应用?
我认为您的场景可以通过Facebook的机制涵盖。但是,如果在使用长期活着的访问令牌时出现某些错误,则需要支持重新使用。这可能是由于Facebook采取的安全措施( - 数据泄露,密码漏洞)或用户撤销令牌或更改密码或何时未使用令牌的时间。
遵循的步骤(根据他们的文档),
-
获得用户访问令牌
这些是短暂的
短寿命的寿命通常大约一两个小时
-
将短暂的令牌交换为长寿令牌
即使不使用它们,这些寿命也约为60天。
长寿的象征性通常持续约60天。
基本上,一旦您获得了长期存在的令牌,就可以从服务器应用程序中使用它。在此过程中,您需要一个使用浏览器的客户端,仅获得短期的访问令牌。
,但如前所述,这些令牌可以到期,
当使用您的应用程序的人向Facebook服务器提出请求时,这些令牌每天一次刷新一次。如果未提出请求,令牌将在大约60天后到期,并且该人将不得不再次通过登录流程才能获得新的令牌。
因此,您需要通过以上两个步骤来获得新的。