2

Symfony の PHP コントローラーからデータベースにユーザーを作成したいと考えています。

userInterface 実装でユーザー エンティティを作成し、sha512 エンコードでセキュリティ ファイアウォールを追加します。

ユーザーを挿入するには、新しいルートを追加します。

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

セキュリティ コントローラに新しいメソッドを追加します。

public function createAction($email,$password) {

}

sha512 でソルトを使用してデータベースにユーザーを作成するには、PHP コントローラー アクション内でどのコードを使用すればよいですか?

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 に答える