0

我正在构建一个可以放置在各种站点上的小部件,并且让用户能够通过 facebook 登录连接到小部件父站点上的帐户。我打算使用 Facebook JS SDK 来执行此操作,但小部件可能会放置在已经使用不同的应用程序 ID 在其上初始化 FB JS SDK 的站点上,如果我以这种方式运行代码,它可能会导致到命名空间问题。

我想出的唯一当前解决方案是进行服务器端类型授权,并有一个重定向 URL 可以返回到托管小部件的当前页面,并使用状态参数来提醒骨干路由器用户已登录。

我想到的第一个问题是在 facebook docs 网站上它说

为安全起见,redirect_uri 必须与应用设置的 App Domain 属性中指定的基本域相同,或者是https://apps.facebook.com/YOUR_APP_NAMESPACE形式的 URL 。

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

4

1 回答 1

1

您可以使用服务器端身份验证和 redirect_uri 到您的站点,该站点将重定向到各个站点

重定向uri =https://www.mydomain.com/?r=https%3A%2F%2Fwww.somesite.me

在您的服务器上,您将查看查询参数 r 并将请求重定向到 r 值。

您还可以为用户进行自己的身份验证(当他们第一次登录时)并将 facebook access_token 存储在您的数据库中,一旦您的小部件正在运行(在 https 下)并且您在身份验证中识别了用户,您可以向小部件客户端发送用户的access_token 并使用它。

您甚至可以创建自己的 Simple FB-like ajax 库,对于大多数事情来说,这将是一个简单的 get/post/put 调用,其中 access_token 作为 url 参数

希望它有帮助

于 2013-03-12T00:24:27.633 回答