我正在关注如何在注册后手动验证用户的示例,它看起来像这样:
$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作为第一个参数传递,并从用户对象获取角色,然后重定向导致无限循环。
我迷路了。
答案 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