Soy nuevo en el foro y en Symfony, he esta buscando un tema relacionado con el mio, pero hay tantos que ya estoy mareado.
He seguido los videos de http://www.cesarcancino.com/ y http://www.edsonmm.com/curso-de-symfony-2/.
En uno crea los usuarios encriptando la clave, y guardándola con Doctrine en una BBDD. La idea es hacer una autentificacion por script, no como lo trae el manual de symfony por cortafuego.
La crea de esta forma:
UserController
Código PHP:
public function createAction(Request $request)
{
$user = new User();
$form=$this->createCreateForm($user);
$form->handleRequest($request);
if($form->isValid())
{
$password = $form->get('password')->getData();
$passwordConstraint = new AssertNotBlank();
$errorList = $this->get('validator')->validate($password, $passwordConstraint);
if(count($errorList) == 0)
{
$encoder = $this->container->get('security.password_encoder');
$encoded = $encoder->encodePassword($user, $password);
$user->setPassword($encoded);
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
DefaultController.php
Código PHP:
public function loginAction(Request $request)
{
if($request->getMethod()=="POST")
{
$email=$request->get("correo");
$password=$request->get("pass");
//echo "correo=".$correo."<br>pass=".$pass;exit;
$user=$this->getDoctrine()->getRepository('bdBundle:Usuarios')->findOneBy(array("correo"=>$email,"pass"=>$password));
if($user)
{
$session=$request->getSession();
$session->set("id",$user->getId());
$session->set("nombre",$user->getNombre());
//echo $session->get("nombre");exit;
return $this->redirect($this->generateUrl('bd_homepage'));
}else
{
$this->get('session')->getFlashBag()->add(
'mensaje',
'Los datos ingresados no son válidos'
);
return $this->redirect($this->generateUrl('bd_homepagelogin'));
}
}
return $this->render('bdBundle:Trabajo:login.html.twig');
}
lo he intentado asi:
Código PHP:
$email=$request->get("username");
$password=$request->get("password");
$user=$this->getDoctrine()->getRepository('userBundle:User')->findOneBy(array("username"=>$email));
//print_r($user);exit;
$encoder = $this->container->get('security.password_encoder');
$encoded = $encoder->encodePassword($user, $password);
Saludos.