Guzzle没有重定向到Facebook

时间:2014-12-11 10:17:52

标签: php facebook laravel facebook-login guzzle

我使用Facebook作为Auth Provider,并使用Guzzle作为我的$client来处理所有的调用和重定向。

当我使用它时:

<?php

class Facebook extends AuthProvider implements AuthProviderInterface {

  public function authorise()
  {
    $url = 'https://www.facebook.com/dialog/oauth?' . http_build_query([
      'client_id'     => $this->clientId,
      'redirect_uri'  => $this->redirectURL,
      'scope'         => 'public_profile,email'
    ]);
    return $this->client->get($url);
  }

}

我被重定向到Facebook登录页面,在HTML启动之前输出了一堆标题。如果我重定向到Google或其他任何地方,也会发生同样的情况。两人都谈到了P3P?

但是,如果我将return $this->client->get($url);更改为return \Redirect::to($url);(使用Illuminate / Redirect lib),它可以正常工作并转到&#34; {App}想要访问以下内容...& #34;页。

如果可能的话,我想专门使用Guzzle,而不是利用2个库,因为我非常确定Illuminate / Redirect无论如何都会以某种方式使用Guzzle。

我认为问题与发送的标头有关(或者没有发送),但Facebook docs没有任何相关信息。

有人可以帮忙吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

万一有人偶然发现这件事,我发现这是不可能的。 Guzzle正在服务器级别进行重定向,而不是浏览器级别,因此需要使用重定向器类来执行此操作。