我加载应用程序一次,接收 signed_request 并从中检索用户令牌,然后 iframe 中的所有转换都使用内部链接(无签名请求)完成。
我有几个需要处理的用例。用户访问令牌刚刚过期:
- 用户单击下一个链接(不是 ajax)并发送获取请求
- 用户填写表格并发送发布请求
- 用户向需要访问facebook的服务器发送ajax请求
Nr 1 是最明显的情况,我可以简单地将用户重定向到 /authorize,因为没有交易。Nr3 可以通过解析来自服务器的特殊错误并重定向到 /authorize 的相同方式来解决。
Nr2,是最不愉快的情况,因为我使用的是非事务性 mongodb。所以我看到的唯一解决方案是 - 在做任何事情之前,我需要检查 /me 的访问令牌,如果它无效,将整个请求正文保存在会话中,重定向到 /authorize 然后再次处理请求。但是,如果它有效,则不能保证我的交易成功,但我对此很好。
所以我认为真正的问题是......你如何处理这些情况?你如何刷新令牌?你如何处理它们?也许我错过了一些明显的东西?
任何想法将不胜感激。谢谢!