我正在计划将Facebook集成添加到我正在处理的网络应用程序中 . 在大多数情况下,它正在顺利进行,但我对处理OAuth令牌的正确方法感到困惑 .
Facebook here提供的一系列事件是:
-
要求用户授权您的应用程序,将其发送到Facebook窗口 .
-
这将返回Facebook生成的授权码
-
然后使用您的授权码点击https://graph.facebook.com/oauth/access_token,这将为您提供有时间限制的OAuth令牌 .
-
使用OAuth令牌,您可以发出访问用户Facebook Profiles 的请求 .
Facebook的文档有关于令牌过期的以下内容:
除了访问令牌(access_token参数)之外,响应还包含令牌到期之前的秒数(expires参数) . 令牌过期后,您需要重新运行上述步骤以生成新代码和access_token,但如果用户已经授权您的应用,则不会再次提示他们这样做 . 如果您的应用需要具有无限到期时间的访问令牌(可能是在他们不使用您的应用后代表用户执行操作),您可以请求offline_access权限 .
当他们说重新运行上述步骤时,需要重新运行哪些步骤来获取新的OAuth令牌? What data (Facebook UID, Authorization Code, OAuth token) does it make sense to save to my local database?
我希望能够让用户继续与我的网站进行交互,并且为了响应某些用户操作,我希望能够提示用户是否要将内容发布到他们的Facebook墙上 .
2 回答
自您提出此问题以来,Facebook提供的文档已更新 . https://developers.facebook.com/docs/authentication/ .
访问令牌是基于时间和会话的,并且是在用户关闭会话之后存储并且没有用的不必要的数据 . facebook uid是您识别用户唯一需要的东西 . 由于Facebook API有时很慢,你可以存储用户名 .
但是为了识别,你需要的只是uid .