将Facebook集成添加到Web应用程序时,如何处理OAuth代币到期以及应保存哪些用户数据?
-
24-10-2019 - |
题
我计划将Facebook集成添加到我正在处理的Web应用程序中。在大多数情况下,它进行得很顺利,但是我对处理Oauth代币的正确方法感到困惑。
Facebook提出的事件顺序 这里 是:
- 要求用户授权您的应用程序,将其发送到Facebook窗口。
- 这将返回Facebook生成的授权代码
- 然后您点击 https://graph.facebook.com/oauth/access_token 借助您的授权代码,它将为您提供时间有限的OAUTH令牌。
- 使用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/.
不隶属于 StackOverflow