将Facebook集成添加到Web应用程序时,如何处理OAuth代币到期以及应保存哪些用户数据?

StackOverflow https://stackoverflow.com/questions/4798992

  •  24-10-2019
  •  | 
  •  

我计划将Facebook集成添加到我正在处理的Web应用程序中。在大多数情况下,它进行得很顺利,但是我对处理Oauth代币的正确方法感到困惑。

Facebook提出的事件顺序 这里 是:

  1. 要求用户授权您的应用程序,将其发送到Facebook窗口。
  2. 这将返回Facebook生成的授权代码
  3. 然后您点击 https://graph.facebook.com/oauth/access_token 借助您的授权代码,它将为您提供时间有限的OAUTH令牌。
  4. 使用OAuth代币,您可以提出请求以访问用户的Facebook配置文件。

Facebook的文档有以下内容有关令牌到期的要说的:

除了访问令牌(access_token参数)外,响应还包含秒数,直到令牌到期(到期参数)。令牌到期后,您将需要重新运行上述步骤以生成新的代码和access_token,尽管如果用户已经授权您的应用程序,则不会提示他们再次这样做。如果您的应用需要有无限到期时间的访问令牌(也许在不使用您的应用程序后代表用户采取措施),则可以请求Offline_access许可。

当他们说要重新运行上述步骤时,需要重新运行哪些步骤才能获得新的OAuth代币? 哪些数据(Facebook UID,授权代码,OAUTH TOKEN)保存到我的本地数据库有意义?

我希望能够让用户继续与我的网站进行交互,并且在响应某些用户操作时,我希望能够提示用户如果他们想将某些内容发布到其Facebook墙上。

有帮助吗?

解决方案

访问令牌是基于时间和会话的,是不必要的数据存储,并且在用户关闭会话后无用。 Facebook UID是您唯一需要识别用户的东西。由于Facebook API有时很慢,您可以存储用户名。

但是对于身份证明,您需要的只是UID。

其他提示

自您提出此问题以来,Facebook提供的文档已更新。 https://developers.facebook.com/docs/authentication/.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top