2011-09-13 40 views
2

我正在构建一个facebook canvas应用程序,我使用facebook提供的签名请求参数来检查用户是否已经对应用程序进行了身份验证。 (通过检查user_id字段的存在)。如果user_id未设置,那么我将用户重定向到uthorization页面(使用javascript中的top.location)。iframe中的facebook canvas应用程序重定向和签名请求

问题是,在我的应用程序中,我需要做内部重定向,然后我不能得到签名的请求了。

可能的解决方案: 1)。改变我检查用户是否安装了应用程序的方式。获取当前用户(不确定是否需要签名请求)。然后使用图形API来检查权限)。 2)。总是使用客户端重定向。 (然后我可以通过获取已签名的请求,并且由于顶部的url更改,它也为用户提供了更好的导航。)与iframe重定向相比,不确定性能。

什么是最佳选择,在您的意见。

PS:我使用PHP SDK/symfony框架和javascript sdk。

回答

0

处理此问题的最常见方法是设置一个cookie来传送signed_request或您需要的任何数据子集,以便它可在所有页面上使用。您可以直接或通过使用PHP会话来存储数据。

但是我个人认为cookie在iframe应用程序中是一个坏主意。对于可能做你需要的替代方法,看看http://www.braintilt.com/fbcookies.php

+0

谢谢。我已经使用php会话来存储签名的请求。 – brpaz