手动验证用户时未设置app.user.

时间:2011-12-18 10:29:08

标签: symfony

我正在关注如何在注册后手动验证用户的示例,它看起来像这样:

$token = new UsernamePasswordToken($user->getUsername(), null, 'main', array('ROLE_USER'));
$this->get('security.context')->setToken($token);

Bu因为我正在使用doctrine实体作为用户提供者,它没有正确设置,我不知道如何做到这一点。如果我将$ user作为第一个参数传递,则网页无限循环。我觉得应该有一个DoctrineUserToken类,但不能找到它。

你能指点我吗?

编辑:

如果我将行更改为:

$token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());

我将$ user作为第一个参数传递,并从用户对象获取角色,然后重定向导致无限循环。

我迷路了。

1 个答案:

答案 0 :(得分:2)

试试这段代码:

$token = new UsernamePasswordToken($user->getUsername(), null, 'secured_area', array('ROLE_USER'));
$this->get('security.context')->setToken($token);

$ providerKey必须得到表单secure.yml:

firewalls:
    secured_area:
        form_login:
            check_path: /signInCheck
            login_path: /signIn
        logout: true