登录时出现错误凭据错误

时间:2013-12-28 23:52:45

标签: php symfony

我在控制器中有一个方法可以在数据库中添加用户:

// Ajouter
public function ajouterAction()
{
    $user = new User() ; // créer l'entité
    $user->setUsername('test2');
    $user->setPassword('testpass');
    $user->setSalt('saltpass');
    $user->setRoles(array('ROLE_ADMIN', 'ROLE_USER'));

    $em = $this->getDoctrine()->getManager();

    $em->persist($user);

    $em->flush();

    return $this->redirect( $this->generateUrl('store_produit_index'));

}

用户表:

id | username | pasword  | salt     | roles
---------------------------------------
27 | test2    | testpass | saltpass | a:2:{i:0;s:10:"ROLE_ADMIN";i:1;s:9:"ROLE_USER";}
-----------------------------------------------------------------------------------
30 | winzou   | winzou   | wizou    | a:0:{}
--------------------------------------------------------------------------------------

例如,当我使用用户名winzou连接时,它可以正常工作,但当我使用用户名test2连接时,表单会返回错误:Bad credentials

2 个答案:

答案 0 :(得分:0)

保存时,您的密码未加密,应该是。当您登录时,symfony正在加密用户输入的密码并在数据库中查找加密版本。

这可能会有所帮助:http://symfony.com/doc/current/cookbook/doctrine/registration_form.html

答案 1 :(得分:0)

我已经在'user'表中手动清除了'salt'字段,用于加密密码,现在工作正常!但Symfony2是否自动包含此字段是为了加密密码? “salt”这个词是指定值并在Symfony2中保留吗?