窗口小部件

问题描述:

我建立,可以放置在各种网站,并让用户可以通过Facebook登录连接到widget的父网站上账户插件使用Facebook的API。我打算使用Facebook JS SDK来做到这一点,但这个小部件很可能放在已经有FB JS SDK使用不同的应用程序ID初始化的网站上,如果我以这种方式运行代码,它可能会导致到一个名称空间问题。窗口小部件

我现在唯一的解决方法是做服务器端类型的授权,并且有一个重定向url导回到托管窗口小部件的当前页面,并使用状态参数来警告主干用户已经登录路由器。

我想到的第一个问题是,Facebook上的文档的网站,它说

为了安全,REDIRECT_URI必须具有相同的基本域,在应用程序中指定您的应用设置的域属性,或者是表单为https://apps.facebook.com/YOUR_APP_NAMESPACE的网址。

如何让人们回到登录后托管的小部件的原始页面?有没有更好的方法来解决这个问题?

你可以使用服务器端验证和REDIRECT_URI到您的网站重定向到不同的网站

REDIRECT_URI = https://www.mydomain.com/?r=https%3A%2F%2Fwww.somesite.me

在你的服务器,你会看的查询参数R和请求重定向至r值。

您也可以为用户(当他们第一次登录时)进行自己的身份验证,并在其上存储Facebook access_token,一旦您的窗口小部件正在运行(在https下),并且您通过身份验证识别出用户,小部件客户端用户的access_token并使用它。

你甚至可以创建自己的简单FB-如AJAX库,大部分事情这将是一个简单的GET/POST /把电话与作为的access_token URL参数

希望它能帮助