我想在从前端向后端发送数据时注册用户,并使用FOSUserBundle。但是,当我在数据库中保留数据时,我得到一个空的salt
值。
<?php
namespace MedBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use AppBundle\Entity\User;
use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder;
class DefaultController extends Controller
{
public function indexAction()
{
return $this->render('MedBundle:Default:index.html.twig');
}
public function registerAction()
{
$m = " saisie votre donnés";
$request = $this->getRequest();
$em = $this->getDoctrine()->getManager();
if ($request->getMethod() == 'POST') {
$username = $request->request->get('username');
$email = $request->request->get('email');
$pass = $request->request->get('pass');
$userManager = $this->get('fos_user.user_manager');
$user= new User();
$user->setUsername($username);
$user->setEmail($email);
$user->setPlainPassword($pass);
$user->setEnabled("1");
$em->persist($user);
$em->flush();
$m= "success";
}
return $this->render('default/registere.html.twig',array('m' => $m));
}
}
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;
class User extends BaseUser
{
protected $id;
protected $username;
protected $email;
protected $plainPassword;
protected $enabled;
protected $salt;
protected $roles;
// ...
}
当我设置
$user->setSalt('hello');
我有一个salt
为空的错误。
答案 0 :(得分:0)
如果您使用的是bcrypt,它会使用内置盐,因此您不会将盐存储在数据库中。
https://github.com/FriendsOfSymfony/FOSUserBundle/issues/946