パスワード コントローラーをリセットする FOSUserBundle をオーバーライドする場合、「authenticateUser」メソッドへの関数呼び出しがあります (104 行目)。
....
$this->authenticateUser($user);
....
私の問題は、Symfony 認証ハンドラーを既にオーバーライドしており、ユーザーがログインするときに独自のロジックを持っていることです。
編集 ここに私の認証ハンドラがあります:
<?php
/* ... all includes ... */
class AuthenticationHandler implements AuthenticationSuccessHandlerInterface, LogoutSuccessHandlerInterface
{
private $router;
private $container;
public function __construct(Router $router, ContainerInterface $container)
{
$this->router = $router;
$this->container = $container;
}
public function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
// retrieve user and session id
$user = $token->getUser();
/* ... here I do things in database when logging in, and dont want to write it again and again ... */
// prepare redirection URL
if($targetPath = $request->getSession()->get('_security.target_path')) {
$url = $targetPath;
}
else {
$url = $this->router->generate('my_route');
}
return new RedirectResponse($url);
}
}
では、 ResettingController の認証ハンドラから「onAuthenticationSuccess」メソッドを呼び出すにはどうすればよいでしょうか? 同じコードを書き直すのを避けるために...
ご協力いただきありがとうございます !
オーレル