FB.ui({method:“oauth”})vs页面选项卡应用程序中的FB.login()

时间:2012-03-06 20:54:27

标签: javascript facebook-page facebook-oauth facebook-login

我们目前通过页面标签应用程序中的JavaScript SDK使用OAuth对话框来请求权限,而不是FB.login。

原因是FB.login()启动一个新窗口,而FB.ui({method:'oauth'})显示一个漂亮的模态对话框。我们发现OAuth对话框对我们的用户来说是一种更友好的体验。

但是,OAuth方法的文档说不要直接在JavaScript SDK中使用它: http://developers.facebook.com/docs/reference/dialogs/oauth/ “不应直接从JavaScript SDK调用OAuth对话框。而是使用FB.login来实现此目的。”

是否有“接受”方式通过模式对话框而不是通过弹出窗口从页面标签应用程序中请求应用程序权限?

1 个答案:

答案 0 :(得分:0)

在此答案的时候,Facebook不允许在框架中请求用户权限,因为它将“X-Frame-Options”设置为“DENY”。这是有道理的,因为它可以用于XSS提议。

使用FB.ui调用FB.logindisplay: "iframe"会返回相同的错误:

FB.ui({method: "oauth", display: "iframe"});

FB.login(function(response){}, {display: "iframe"});

拒绝在一个框架中显示“https://www.facebook.com/dialog/oauth?app_id=XXXX&channel=XXXX&sdk=joey”,因为它将“X-Frame-Options”设置为“DENY”。