Как обрабатывается обратный вызов от владельца ресурса в HWIOAuthBundle?

Я пытаюсь понять, как работает HWIOauthBUndle. Я вижу, как создается и делается первоначальный запрос авторизации для владельца ресурса.

Однако я не вижу, как обратный вызов, сделанный владельцем ресурса, запускает какой-либо контроллер / действие в моем приложении (хотя это, очевидно, и происходит).

Следуя общедоступным инструкциям, обратный вызов будет сделан на что-то вроде <path to my app>/check-[resourceOwner]например, http://www.example.com/oauth/check-facebook,

В моем routing.yml файл, я положил

facebook_login:
    pattern: /oauth/check-facebook

Я не вижу, как какой-либо контроллер связан с этим маршрутом, так что же на самом деле происходит, когда обратный вызов выполняется для моего приложения?

1 ответ

Система провайдера аутентификации является одной из более сложных функций. Возможно, вы захотите прочитать здесь: http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html

Обратные вызовы обрабатываются через прослушиватель запросов. В частности:

namespace HWI\Bundle\OAuthBundle\Security\Http\Firewall\OAuthListener;

use Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener;

class OAuthListener extends AbstractAuthenticationListener
{
public function requiresAuthentication(Request $request)
{
    // Check if the route matches one of the check paths
    foreach ($this->checkPaths as $checkPath) {
        if ($this->httpUtils->checkRequestPath($request, $checkPath)) {
            return true;
        }
    }

    return false;
}
protected function attemptAuthentication(Request $request)
{
    // Lots of good stuff here

Как инициализируются checkPaths и как выполняются все вызовы, потребуется очень длинное объяснение. Но глава провайдера аутентификации поможет вам.

Другие вопросы по тегам