当用户登陆我的应用程序并且没有通过授权过程时,对话框首先在画布中打开,然后在画布外重新加载。除了几秒钟看起来不太正确之外,一切都按预期执行。
header('Location:https://www.facebook.com/dialog/oauth/?client_id=12345678910&redirect_uri=https://apps.facebook.com/namespace/&state=&scope=');
如果检测到身份验证未被接受,我会在我的应用程序顶部 使用。
我总是使用 JavaScript 重定向,因为画布应用程序已经在 iFrame 中,我们希望将顶部窗口重定向到身份验证对话框。
试试这个 PHP 函数,它会回显一个 JavaScript 重定向。
function jsRedirect($url){
echo "<script language=javascript>";
echo "top.location.href ='".$url."';";
echo "</script>";
exit();
}
请注意,我们使用top.location.href
而不是window.location.href
.