无需请求权限即可将用户引导至 Facebook 登录页面

问题描述 投票:0回答:3

我正在尝试将用户重定向到 Facebook 登录页面,然后返回到我的应用程序,而不显示登录应用程序页面。这可能吗?

我研究了由 PHP-SDK 自动生成的“next”参数,但似乎无法更改它。

有办法做我正在寻找的事情吗?我想确保用户已登录,以便检查他们是否已对我的应用程序进行身份验证,但如果他们尚未对我的应用程序进行身份验证,则不希望他们这样做。

感谢您的帮助!

php facebook oauth permissions facebook-fbml
3个回答
2
投票

不,我认为无法修改 next 参数。我看到下一个参数(在 PHP SDK 中)的唯一地方是在

getLogoutUrl()
函数中,如 base_facebook.php 的源代码中所示。该参数定义注销后要转到哪个网址。

对于
base_facebook.php
文件中的 getLoginUrl(),我们有

 return $this->getUrl(
  'www',
  'dialog/oauth',
  array_merge(array(
                'client_id' => $this->getAppId(),
                'redirect_uri' => $currentUrl, // possibly overwritten
                'state' => $this->state),
              $params));

作为函数中的最后一行,这显然意味着无论您尝试什么,都会显示 oauth 对话框。

如果您的应用程序不在 Facebook 上,那么您可以在 Javascript 中使用

<fb:login-button>Login with Facebook</fb:login-button>
,然后按照 this url 中的示例进行操作。您会在那里看到不可能完全删除该对话框,即使您不请求任何权限。

Javascript SDK 的 FB.login() 方法也会打开身份验证对话框。
希望这有帮助。


2
投票

他们只需在第一次时接受权限。 Facebook 永远不会让你在用户不知情/不接受的情况下获取他们的数据


0
投票

如果您使用 php :

// Create our Application instance.
$facebook = new Facebook(array(
  'appId'  => $fbconfig['appid'],
  'secret' => $fbconfig['secret'],
  'cookie' => true
));

//Facebook Authentication part
$user = $facebook->getUser();

if (!$user) {
    // user is not logged on --> redirect to the login url
} else {
    // user is logged on you can do what you want
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.