2012-10-01 31 views
1

我想在Symfony中的PHP控制器中创建数据库中的用户。Symfony如何添加用户

我用userInterface实现了用户实体,用sha512编码加起来安全防火墙。

要插入用户我添加新的路线:

user_create: 
     pattern: /create_user/{email}/{password} 
     defaults: { _controller: MyBundleBackendBundle:Security:create } 

而且在安全控制器添加新的方法:

public function createAction($email,$password) { 

} 

我的PHP控制器动作中使用什么样的代码来创建一个用户用sha512与盐的数据库?

+1

你看到一个错误信息,或者你在找方向?你能澄清一下真正的问题在这里吗? –

回答

9

如何在symfony中从代码中添加用户:

public function createUserAction($email,$password) { 

    $factory = $this->get('security.encoder_factory'); 

    $user = new User(); 

    $encoder = $factory->getEncoder($user); 
    $user->setSalt(md5(time())); 
    $pass = $encoder->encodePassword($password, $user->getSalt()); 
    $user->setEmail($email); 
    $user->setPassword($pass); 
    $user->setActive(1); //enable or disable 

    $em = $this->getDoctrine()->getEntityManager(); 
    $em->persist($user); 
    $em->flush(); 

    return new Response('Sucessful'); 
} 
2

通过SecurityHow to implement a simple Registration Form

有一个读如果你正在一个通用登录/注册系统FOSUserBundle是一个不错的选择。

+0

对不起,我是新手,但我不需要一个表单,这个例子是用纯文本而不是sha512和salt字段,本教程如何帮助我? – David

+0

我不想为我做代码,我可以保存用户实体内的任何东西,但我如何保存sha512和盐田?存在任何预定义的方法,我将手动进行?在本手册中我没有看到任何解决方案。我尝试谷歌和我失去了 – David

+0

看看http://symfony.com/doc/2.0/book/security.html#encoding-the-user-s-password – wgcrouch