Как обрабатывается обратный вызов от владельца ресурса в 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 и как выполняются все вызовы, потребуется очень длинное объяснение. Но глава провайдера аутентификации поможет вам.