Symfony 如何在HWIOAuthBundle中处理来自资源所有者的回调?
我试图了解HWIOauthBUndle是如何工作的。我可以看到如何构建和发出对资源所有者的初始授权请求 但是,我看不到资源所有者发出的回调如何触发我的应用程序中的任何控制器/操作(尽管它显然会触发) 按照一般可用的说明进行操作时,将回调到类似Symfony 如何在HWIOAuthBundle中处理来自资源所有者的回调?,symfony,hwioauthbundle,Symfony,Hwioauthbundle,我试图了解HWIOauthBUndle是如何工作的。我可以看到如何构建和发出对资源所有者的初始授权请求 但是,我看不到资源所有者发出的回调如何触发我的应用程序中的任何控制器/操作(尽管它显然会触发) 按照一般可用的说明进行操作时,将回调到类似/check-[resourceOwner],例如http://www.example.com/oauth/check-facebook 在我的routing.yml文件中,我将 facebook_login: pattern: /oauth/che
/check-[resourceOwner]
,例如http://www.example.com/oauth/check-facebook
在我的routing.yml
文件中,我将
facebook_login:
pattern: /oauth/check-facebook
我看不出任何控制器是如何与该路由相关联的,因此当对我的应用程序进行回调时,实际会发生什么情况?身份验证提供程序系统是更复杂的功能之一。您可能需要在此处通读: 回调是通过请求侦听器处理的。具体而言:
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
如何初始化checkpath以及如何进行所有调用需要很长的解释。但是认证提供者一章会让你开始