symfony - 如何以编程方式对用户进行身份验证

标签 symfony

这个问题在这里已经有了答案:





How to programmatically login/authenticate a user?

(5 个回答)


8年前关闭。




我有一个 Controller ,它应该通过一个简单的表单添加用户,但我无法手动验证用户。

use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken    

public function addAction($user)
    {
           $token =new UsernamePasswordToken(
                    $user->getUsername(),
                    $user->getPassword(),
                    'secured_area',
                   $user->getRoles()
                    );

           $this->get('security.context')->setToken($token);
           // as suggested in some other answers

           $request->getSession()->set('_security_secured_area', serialize($token));
           // as suggested in http://techblog.zabuchy.net/2012/manually-authenticate-symfony-2-user/

            return $this->redirect($this->generateUrl('acme_project_secure_show' )
                    );
        }
    }

重定向到安全路由有效,但随后的方法 $this->getUser()由于身份验证设置不正确,返回 null...
我可以从 $user= $this->get('security.context')->getToken(); 获取用户而不是 $user= $this->get('security.context')->getToken()->getUser(); $this->getUser() 的快捷方式看书here
知道为什么吗?

最佳答案

问题已解决 - 缺少两点:1) 必须 dispatch InteractiveLoginEvent - 感谢 mpm 提供链接 2) 该 Controller 的路由不在 secured_area 下防火墙 - 谢谢弗洛里安 ;)

关于symfony - 如何以编程方式对用户进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14512664/

相关文章:

php - 访问 Symfony2 WebTestCase 中的容器,返回 NULL

symfony - FOSElasticaBundle 未填充 AWS ElasticSearch 中的 searchableDocuments

symfony - 在 where 条件下的学说 ORM 计数数组集合

symfony - Symfony2 Swiftmailer无法发送

symfony - 从表单 Symfony2 的更新过程中排除实体字段

php - Symfony2 : How do I use in a form (query builder) left join and isnull?

unit-testing - 如何测试使用 DateTime 获取当前时间的函数?

symfony - FOSElasticaBundle:如何不索引脱机文档?

symfony - 具有多个 id 的请求 Symfony2 Doctrine

symfony - {"error":"invalid_client","error_description":"The client credentials are invalid"} 在 fosauth 包中