2012-02-21 134 views
0

我在寻找和寻找有点太长的时间来解决我的问题,我几乎找不到任何关注困扰我的话题。登录无表单提交

即:如果用户登录可以在不使用表单登录的情况下在symfony2里面处理,你有什么想法吗?更精确地说,我的意思是让我们说这样的事情:

$this->authenticationManager->login($user->getUsername(), $user->getPassword()); 

现在我有两个想法,做我想做的事,但有一点不同:

  1. 以AJAX的优势和发送(不幸的是,如果JavaScript已被禁用,这是行不通的)
  2. 在symfony的文档中,我找到了一个选项post_only:true当我设置为false时,让我访问loginAction和GET方法那么简单的重定向就可以在这里完成这项工作。

不过我更喜欢我正在寻找的解决方案。

BTW:如果我需要它成功提交登录数据,你能告诉我如何生成csrf标记吗?

回答

5

您可以手动设置的认证令牌:

// Inside an action, for example. You already need an user. 
$providerKey = 'main'; // your firewall name 
$token = new UsernamePasswordToken($user, null, $providerKey, $user->getRoles()); 
$this->container->get('security.context')->setToken($token); 

找到here

+0

酷!它的工作原理,非常感谢你:) – micper 2012-02-23 13:42:14