Symfony2:如何手动登录用户? [复制]
Posted
技术标签:
【中文标题】Symfony2:如何手动登录用户? [复制]【英文标题】:Symfony2: How to log user manually? [duplicate] 【发布时间】:2011-11-09 10:39:52 【问题描述】:可能重复:Automatic post-registration user authentication
我想在注册后登录用户。我可以通过 javascript 向 /login_check 发送带有用户名和密码的 POST 请求来做到这一点。至少我认为它可能会成功。但更好的解决方案是通过控制器中的 php 代码实现它,但我不知道如何使用 Symfony2 来做到这一点。
【问题讨论】:
@Problematic:有效!谢谢。 【参考方案1】:如果我没记错的话,诀窍是将令牌直接设置到security.context
服务中。由于您使用的是用户名/密码对,因此您可以实例化一个 UsernamePasswordToken
类并将其设置在安全上下文中。
$securityContext = $this->get('security.context');
$token = new UsernamePasswordToken($username, $password, $providerKey, $roles);
$securityContext->setToken($token);
对于$user
、$password
和$roles
参数,这很明显。对于$providerKey
,我必须承认我不知道到底该放什么。因此,也许从 AuthenticationProvider
获取令牌可能会更容易,或者如果您已经可以访问 TokenInterface
对象。
我的anwser的重点是通过setToken
方法将令牌直接设置到SecurityContext
对象中。但我不确定如何检索或创建令牌:)
希望对您有所帮助。
问候, 马特
【讨论】:
$providerKey 是您的防火墙的名称,在 app/config/security.yml 中设置以上是关于Symfony2:如何手动登录用户? [复制]的主要内容,如果未能解决你的问题,请参考以下文章