2

我想从 Symfony 中的 PHP 控制器在数据库中创建一个用户。

我使用 userInterface 实现创建用户实体,使用 sha512 编码添加安全防火墙。

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

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

并在安全控制器中添加新方法:

public function createAction($email,$password) {

}

我在 PHP 控制器操作中使用什么代码在数据库中使用带有盐的 sha512 创建用户?

4

2 回答 2

13

如何通过代码在 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');
}
于 2012-10-02T22:52:38.223 回答
2

阅读安全性如何实施简单的注册表单

如果您正在制作通用登录/注册系统,FOSUserBundle是一个不错的选择。

于 2012-10-01T19:30:16.427 回答