0

我所做的是,

我首先使用 ajax 调用控制器/功能“用户/身份验证”

此函数从 sdk 获取 loginurl 并将其返回到 javascript 至极执行 window.open.href ...到目前为止 sogood.. 我被定向到 facebook 登录页面,

但是在成功登录后,它会重定向回相同的用户/身份验证。

问题:这是正常行为吗?或者我可以设置redirecturl ..

问题:它返回的 url 在问号之间没有斜线,因此该函数永远不会像这样“users/authenthicate?bladeblibla”那样被识别。

*我在注册应用程序时确实设置了一些网址,但那是一个完全不同的网址,例如“http://www.domain/users/facebook_login”*

谢谢理查德

4

2 回答 2

1

您可以按如下方式设置重定向 URI:

$linkToOauthDialog = $this->facebook->getLoginUrl(

  array(
     'scope'         =>  SCOPE_OF_THE_APP,
     'redirect_uri'  =>  REDIRECT_URI
  )

);

您还应该记住,Safari 不允许在 iframe 中设置第三方 cookie,这就是为什么您需要先重定向到您自己的域,在其中设置 cookie 并再次重定向到 facebook。否则你最终会陷入无限循环。

我在这里更详细地描述了这种方法: Safari 3rd party cookie iframe trick no longer working?

于 2012-08-08T15:20:23.297 回答
1

是的,这是 php sdk 的默认行为。当您调用getLoginUrl()并且未在参数数组中指定redirect_uriat 时,它将尝试使用当前 url。

我认为您想要使用的是 JS sdk 的FB.login()方法,而不是使用 window.open 进行重定向(将打开弹出窗口,但您会在页面的 js 中获得信息)。

于 2012-08-08T15:23:19.743 回答