我的背景: 使用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
不是在后台运行,正如我从文档中所期望的那样。
原因是什么?
仅当进行重定向的域与客户端不同时,它是否有效? (我现在无法测试这个案例)
我是否误解了文档?