当有人试图通过Facebook登录我的网站时,他被重定向到一个页面,他看到所有请求的权限,然后单击以允许/禁止它们。通过javascript打开Facebook连接窗口?
有没有什么办法让这个页面作为一个分层窗口通过javascript打开而不需要用户离开我的网站?例如,所以我的网站将在Facebook连接窗口悬停在其上方的背景中。
有什么想法吗?
当有人试图通过Facebook登录我的网站时,他被重定向到一个页面,他看到所有请求的权限,然后单击以允许/禁止它们。通过javascript打开Facebook连接窗口?
有没有什么办法让这个页面作为一个分层窗口通过javascript打开而不需要用户离开我的网站?例如,所以我的网站将在Facebook连接窗口悬停在其上方的背景中。
有什么想法吗?
答案是否定的。另外,你不能在IFrame中加载登录页面,因为Facebook有该页面的帧断路器。
您正在谈论的网页叫做OAuth dialog。默认情况下,由于“display”参数设置为“page”(其他值包括:popup,iframe,touch和wap),所以请求用户登录您的应用将导致页面重定向。你想要的是调用这个对话框,显示设置为“iframe”。但是,文档states:“如果指定iframe,则必须具有有效的access_token。”而且,要获得access_token,用户需要先登录到您的应用程序。因此,您将无法在嵌入式IFrame中显示登录页面。
但是,一旦用户使用基本权限设置授权您的应用程序,您可以使用对话框的显示模式向“iframe”(因为您拥有access_token)提示其他权限。
因此,如果我想让他登录到我的网站时,最好的选择是使用弹出窗口? – 2011-06-11 23:34:50
最好的选择是使用JavaScript SDK的默认行为(即页面重定向),因为弹出窗口可能由于各种原因而无法打开。例如,Internet Explorer的文档[states](http://msdn.microsoft.com/en-us/library/ms537632(v = vs.85).aspx):“弹出窗口阻止程序阻止脚本启动的弹出窗口,在没有用户点击链接的情况下创建的窗口。“由于JS SDK的错误,我看到了其他故障。 – 2011-06-12 00:19:01
是的,但客户坚持认为你必须保持在同一个网站,而不是重定向。为此,弹出窗口是最好的选择? (无论如何,它们只会在点击链接后触发) – 2011-06-26 14:18:56
我支持大卫的回答。另外,如果您以某种方式在iframe或div中加载登录对话框,用户将无法知道他/她是否真的将登录凭据提交给Facebook或其他某个网站。
还不能评论。 :(
关于用户无法辨别它是否真的是facebook的好处。 – 2011-06-11 23:36:01
我使用Facebook上的弹出式内,它工作得很好。
1)“假” Facebook的登录键式
以按钮的屏幕截图,包裹它的IMG标签用属性的一个标签
href="<?= $facebook->getLoginUrl(...); ?>"
onclick="facebookPopup(this.href); return false"
2)创建JavaScript弹出功能
function facebookPopup (url) {
popup = window.open(url, "facebook_popup",
"width=620,height=400,status=no,scrollbars=no,resizable=no");
popup.focus();
}
3)创建FB Connect“登陆页面”
创建一个php文件,用于在完成连接对话框时处理用户数据,例如,如果他是新用户,则保存他的用户名和facebook-uid,或者只是将他登录到if他的身份证号码已经知道。 然后通过的Javascript关闭弹出窗口并刷新你的主页:
function CloseAndRefresh()
{
window.opener.location.href = window.opener.location.href;
window.close();
}
您可以通过<body onload='CloseAndRefresh()'>
触发功能还记得在登录-URL(REDIRECT_URI)到指定的LandingPage的URL。 另外,如果您在登录URL中指定'display'=>'popup',它将显示“Permission Request”-Dialog的精简版本。
我认为你可以使用jQuery弹出并加载iframe ...... – Anish 2011-06-07 06:31:35
@Anish在那里没有办法做到这一点? – 2011-06-08 16:02:21