Javascript 如果用户使用的FB帐户与注册的FB帐户不同,如何限制访问facebook API(从JS对话框)

Javascript 如果用户使用的FB帐户与注册的FB帐户不同,如何限制访问facebook API(从JS对话框),javascript,ruby-on-rails,cookies,Javascript,Ruby On Rails,Cookies,该场景是:用户使用facebook账户1注册到该网站(他通过garant访问该网站,因此该网站将其UID存储在DB中,这样他就不必在每次尝试登录时都给予网站访问权),现在他可以点击“邀请朋友”链接,与朋友一起弹出尼斯JS pretybox。到现在为止,一直都还不错。现在在新标签中,他设法从facebook_账户1注销,并登录到facebook_账户2(而他仍在我们的网站上使用相同的账户)。。。现在,当他点击“邀请朋友”链接时,他可以从第二个帐户邀请朋友 问题是这个JS弹出窗口没有处理我的db存储

该场景是:用户使用facebook账户1注册到该网站(他通过garant访问该网站,因此该网站将其UID存储在DB中,这样他就不必在每次尝试登录时都给予网站访问权),现在他可以点击“邀请朋友”链接,与朋友一起弹出尼斯JS pretybox。到现在为止,一直都还不错。现在在新标签中,他设法从facebook_账户1注销,并登录到facebook_账户2(而他仍在我们的网站上使用相同的账户)。。。现在,当他点击“邀请朋友”链接时,他可以从第二个帐户邀请朋友

问题是这个JS弹出窗口没有处理我的db存储访问令牌(这是逻辑的),但是我正在寻找解决方案,如何限制弹出窗口显示警告消息“你已经使用了不同于你存储的UID的FB帐户”,但是JS->FB通信的方式我不能仅仅替换请求的UID,使用存储的UID

我们想出的唯一解决方案就是将存储的FBCookieUID和数据库中的用户UID进行比较,但由于浏览器的限制,您无法这样做(这也是合乎逻辑的)

以下是我必须在现场保留的内容: 1个站点现在只能存储1个FB访问令牌(UID) 2目前,我不允许将JS弹出窗口重构为自定义界面,以便处理此问题

有什么想法吗


顺便说一句,很抱歉问题的标题太长了,想不出更短的问题了

他是如何从弹出窗口注销的

我建议你使用facebook提供的标准对话框,因为url将被禁用,其他事情由fb自动处理


该对话框位于

否,他从浏览器的其他选项卡注销,我们正在使用这些对话框…用于添加好友的对话框。第二个fb帐户是您应用程序的用户吗??如果不是,那么您有一些基本的循环孔,可以检查当前用户是否是应用程序的用户。。即使他从其他选项卡注销,当他试图从其他选项卡触发任何操作时,也应该对他进行验证。。使用一个基本身份验证函数,该函数将检查当前用户是否是应用程序的用户(对照数据库进行检查),并返回bool值,然后在执行任何操作之前调用此函数。。