使用Angular应用程序和FB SDK更新服务器端使用的Long-Lived令牌

时间:2015-06-14 13:29:30

标签: angularjs facebook facebook-javascript-sdk facebook-access-token

我的背景: 使用Javascript Facebook SDK和我的独特服务器(REST API)的AngularJS应用程序。

工作流:
用户使用FB.login(callback)方法通过FB SDK登录客户端 稍后会提供一个短期令牌,然后将其发送到服务器,以便将其转换为长期令牌。

我对60天后刷新长寿令牌的机制感兴趣。

所以,阅读doc,我们发现了这个:

  

即使是长期存取的令牌也会最终到期。在任何时候,   您可以通过将此人发送回来生成新的长期令牌   您的网络应用使用的登录流程 - 请注意,此人不会   实际上需要再次登录,他们已经授权你的应用程序,   所以他们会立即从登录流程重定向回您的应用程序   使用刷新的令牌 - 这对于人来说会有多大差异   基于您正在使用的登录流的类型,例如,如果您   正在使用JavaScript SDK,这将在后台进行,   如果您使用的是服务器端流程,浏览器将快速重定向   登录对话框,然后自动立即返回   你的应用程序了。

如果我解释得很好,当用户通过FB.login(callback)已经登录时,简单的重定向到Angular Application的登录流程将允许获得一个新的短期令牌。
我想在这种情况下,FB.login会立即重新运行,而无需用户交互。

我想简单地测试一下,所以我做的是:

  • 通过FB.login(callback)登录到应用程序。
  • 点击虚拟链接,进行简单的重定向:window.location.replace('/');

我的应用程序是单页面应用程序,每个URL都应被视为身份验证页面。

但是FB.login不是在后台运行,正如我从文档中所期望的那样。

原因是什么?
仅当进行重定向的域与客户端不同时,它是否有效? (我现在无法测试这个案例)

我是否误解了文档?

0 个答案:

没有答案