1

Symfony2UserCheckerは、ユーザー認証に必要なクラスです。

コントローラー内でユーザーを認証する必要があるとします。次のような関数を定義する必要があります。

protected function authenticateUser(User $user) {                
   $user_checker = ...//Get here the user checker
    try {
        $user_checker->checkPostAuth($user);
    } catch (AccountStatusException $e) {
        return;
    }

    $providerKey = $this->container->getParameter('firewall_name');
    $token = new UsernamePasswordToken($user, null, $providerKey, $user->getRoles());
    $this->container->get('security.context')->setToken($token);   
}

UserCheckerは Symfony2 で非公開サービスとして定義されていることに注意してください。

  <service id="security.user_checker" class="%security.user_checker.class%" public="false" />

UserCheckerコントローラーでを取得する方法は?

前もって感謝します

4

1 に答える 1

4

エイリアスを使用して、プライベート サービスを「取得」できます。見る:

http://symfony.com/doc/current/components/dependency_injection/advanced.html

于 2012-09-19T08:22:30.383 に答える