如何解决Facebook oauth在新窗口中打开,而不是弹出窗口
| 我正在使用C#获取FB令牌。因此,一旦我将用户重定向到此链接: https://graph.facebook.com/oauth/authorize?........ 它会打开一个新页面,而不是一个弹出窗口(我正在尝试避免使用FB javascript SDK)。 该查询中有\'display = popup \',这不起作用。我也试图\'window.open(...), 但是某些浏览器会使用阻止程序来阻止此类弹出窗口... 有没有办法打开原始的Facebook弹出窗口,然后返回C#代码背后做所有的魔术呢?解决方法
有一个单独的页面来管理Facebook登录。从主页打开相同的内容
window.open(\“ \” ../ Helper / FBLoginMgr.aspx?login = fb \“,\” _ blank \“,\” height = 900,width = 800,menubar = 0,resizable = 1,scrollbars = 1 ,状态= 0,标题栏= 0,工具栏= 0 \“);
在页面加载事件的FBLoginMgr.aspx中,您可以执行以下操作:
if (Request[\"login\"] != null)
{
//First time
url = \"https://graph.facebook.com/oauth/authorize?client_id={0}&redirect_uri={1}&scope=offline_access,read_stream,user_activities\";
Response.Redirect(string.Format(url,app_id,redirect_url));
}
if (Request[\"code\"] != null)
{
//Second time
url = \"https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&client_secret={2}&code={3}\";
..
初始querystring参数login = fb仅用于向Login mgr指示其已启动,并且需要启动Facebook授权。第二个Request [\“ code \”]是Facebook在用户授权后发布的参数。
Once the access token is retrieved,set a hidden variable to indicate that the job is done. Then in the aspx page you could have something like this:
$(document).ready(function () {
alert(\"Time to say good bye\");
if (document.getElementById(\'<%=amidone.ClientID %>\').value == \"yes\") {
window.parent.opener.doneWithLogin();//Indicate to the parent page
window.close();
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。