Я использую Facebook в качестве провайдера аутентификации и использую 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) работает нормально и переходит на страницу «{App} хочет получить доступ к следующей …» странице.
Если возможно, я бы хотел использовать исключительно Guzzle, а не использовать две библиотеки для этого, так как я уверен, что Illuminate / Redirect так или иначе использует Guzzle.
Я думаю, что проблема заключается в том, что заголовки отправляются (или не отправляются), но Facebook документы не имею никакой информации по этому вопросу.
Кто-нибудь может помочь? Заранее спасибо.
На всякий случай, если кто-нибудь наткнется на это, я обнаружил, что это невозможно. Guzzle выполняет перенаправление на уровне сервера, а не на уровне браузера, поэтому для этого потребуется использовать класс Redirector.
Других решений пока нет …