1

Symfony2中的UserChecker是用户认证的必要类。

假设您需要在控制器内对用户进行身份验证,您应该定义如下函数:

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 回答