Symfony3 Facebook Login - redirect_uri URL преобразуется в относительный
Я пытаюсь реализовать вход в Facebook для веб-приложения. Вот FacebookConnect.php
<?php
namespace Vendor\GiftBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Routing\Generator\UrlGenerator;
class FacebookConnectController extends Controller
{
/**
* @Route("/connect/facebook", name="connect_facebook")
*/
public function connectFacebookAction(Request $request)
{
// redirect to Facebook
$redir = $this->generateUrl('connect_facebook_check', array(), UrlGeneratorInterface::ABSOLUTE_URL);
$facebookOAuthProvider = $this->get('app.facebook_provider');
$url = $facebookOAuthProvider->getAuthorizationUrl([
// these are actually the default scopes
'scopes' => ['public_profile', 'email'],
'redirect_uri' => [$redir],
]);
return $this->redirect($url);
}
/**
* @Route("/connect/facebook-check", name="connect_facebook_check")
*/
public function connectFacebookActionCheck()
{
// will not be reached!
}
}
Когда я нажимаю кнопку, которая вызывает функцию connectFacebookAction, я получаю сообщение об ошибке FBURL redirect_uri должен быть абсолютным, Это похоже на игнорирование абсолютного URL, который я ему дал в параметрах.
Что я делаю неправильно?
РЕДАКТИРОВАТЬ: URL-адрес авторизации изменяется в любых обстоятельствах или остается тем же для приложения? Могу ли я просто жестко закодировать его, пока не пойму, как это исправить?
EDIT2Я выяснил, почему URL является относительным, а не абсолютным. Вот моя конфигурация услуг:
services:
app.facebook_provider:
class: League\OAuth2\Client\Provider\Facebook
arguments:
-
clientId: %facebook_app_id%
clientSecret: %facebook_app_secret%
graphApiVersion: v2.8
redirectUri: "@=service('router').generate('connect_facebook_check', {}, true)"
Как сделать генерацию абсолютного URL из маршрута в сервисах?