假设我有一个iOS应用程序,链接到Facebook应用程序。我对以下内容感兴趣,但docs是矛盾的(不幸的是我无法自己测试):
假设用户通过我的iOS应用程序链接到Facebook。让我们假设安装的应用程序知道与Facebook的连接(Facebook ID和Facebook用户访问令牌)。到目前为止,非常好。
我认识的人听说过,如果卸载iOS应用程序,重新安装并尝试使用Facebook登录,则会重新创建Facebook用户访问令牌。
但这似乎在逻辑上存在缺陷,因为:
所以,从逻辑上讲,我认为Facebook用户访问令牌应该是可移植的,也就是说,在用户卸载iOS应用程序后,重新安装它并尝试连接Facebook,一个函数应该可用于收集Facebook用户访问令牌,因为它应该在逻辑上链接到用户,而不是设备。我是对还是错?如果正确,当用户(重新)安装应用程序时,如何恢复Facebook用户访问令牌?如果错了,为什么我的推理存在缺陷?
答案 0 :(得分:1)
如果卸载iOS应用程序,重新安装并尝试使用Facebook登录,则会重新创建Facebook用户访问令牌
创建新 Facebook用户访问令牌。在用户更改密码之前,旧令牌仍处于活动状态。
如果在使用Facebook登录时(重新)生成Facebook用户访问令牌,则在第二台设备上安装应用程序的方案会导致第一台设备的连接无法使用
由于它已生成而未重新生成,因此它按预期工作。用户可以连接多个设备以使用Facebook for iOS。
如果在卸载iOS应用时无效的Facebook用户访问令牌
如前所述,这不是真的。
当应用程序安装在两台设备上时,从设备卸载它会导致与第二台设备的连接无法使用
见上文。
Facebook用户访问令牌应该是便携式的,
正确。令牌是可移植的我可以获取从iOS生成的令牌并在任何我喜欢的地方使用它。当然,使用App Secret可以减轻这种情况,因此只能通过Facebook服务器进行呼叫。但是,由于它是Facebook,因此已经有其他内部检查可以查看任何可疑活动。
用户卸载iOS应用程序后,重新安装并尝试连接Facebook,应该可以使用一个功能来收集Facebook用户访问令牌,因为它应该在逻辑上链接到用户,而不是设备
正确肥胖型。令牌链接到用户和客户端(通过machine_id)。 https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension
如果正确,当用户(重新)安装应用程序时,如何恢复Facebook用户访问令牌?
标记是从会话生成的。他们没有恢复。每次用户打开Facebook应用程序并且必须登录时,都会生成新令牌。如果没有深入了解它,只要设备中有用户有效会话,就会生成新令牌。即使没有会话,用户也可以使用用户/密码登录,这将生成访问令牌和会话。