Symfony2登录:根据3个标准对用户进行身份验证

Symfony2登录:根据3个标准对用户进行身份验证,symfony,authentication,login,Symfony,Authentication,Login,我正在尝试使用symfony2登录,让用户提供3个登录凭据,例如 用户名 注册号 密码 我正在使用一个自定义条目提供程序,从书中生成。这里面有一个班级 public function loadUserByUsername($username) { $q = $this ->createQueryBuilder('u') ->where('u.username = :username') ->setParameter('us

我正在尝试使用symfony2登录,让用户提供3个登录凭据,例如

用户名

注册号

密码

我正在使用一个自定义条目提供程序,从书中生成。这里面有一个班级

public function loadUserByUsername($username)
{
    $q = $this
        ->createQueryBuilder('u')
        ->where('u.username = :username')
        ->setParameter('username', $username)
        ->getQuery();

    try {
        // The Query::getSingleResult() method throws an exception
        // if there is no record matching the criteria.
        $user = $q->getSingleResult();

    } catch (NoResultException $e) {
        $message = sprintf(
            'Unable to find an active User "%s".',
            $username
        );
        throw new UsernameNotFoundException($message, 0, $e);
    }

    return $user;
}
是否有方法将更多变量传递给此方法,例如,
loadUserByUsername($username,$regnumer)
然后我可以查询额外的数据

有人有什么建议吗


提前感谢。

更改loadUserByUsername没有简单的方法。您可以编写自己的自定义身份验证管理器。我发现这是一个非常具有挑战性的问题,尽管一旦你让它工作起来,你就可以完全控制身份验证。当用户/密码经过身份验证时,默认系统会发送身份验证成功事件。您可以尝试侦听此事件,然后应用您的regnumber身份验证。我自己也没试过,但应该可以用。很酷,谢谢你的建议。我认为自定义身份验证处理程序是一种可行的方法。我会试一试,然后再报告。