没有为帐户Symfony2.6

时间:2015-04-28 08:04:17

标签: php symfony

我尝试在我的网站上添加基本的身份验证服务。我尝试登录时收到“没有为帐户配置编码器”。

我使用“Visiteur”实体,如下所示:

namespace WilsonCorp\Bundle\Comptabilite\FraisBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;

/**
 * Visiteur
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="WilsonCorp\Bundle\Comptabilite\FraisBundle\Entity\VisiteurRepository")
 */
class Visiteur implements UserInterface, \Serializable
{

 [...]

/**
 * @var string
 *
 * @ORM\Column(name="password", type="string", length=20)
 */
private $password;


/**
 * @ORM\Column(name="salt", type="string", length=255)
 */
private $salt;


public function eraseCredentials()
{
}

public function serialize()
{
    return serialize(array(
        $this->id,
    ));
}

public function unserialize($serialized)
{
    list (
        $this->id,
        ) = unserialize($serialized);
}
/**
 * Constructor
 */
public function __construct()
{
    $this->fichesFrais = new \Doctrine\Common\Collections\ArrayCollection();
    $this->salt = md5(uniqid(null, true));
}

我的security.yml:

security:
    role_hierarchy:
        ROLE_COMPTABLE: ROLE_USER
        ROLE_ADMIN:       [ROLE_USER, ROLE_COMPTABLE]
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH, ROLE_COMPTABLE]

    providers:
        ddbUsers:
            entity: { class: WilsonCorpComptabiliteFraisBundle:Visiteur, property: username}

    firewalls:
        main_login:
            pattern: ^/login$
            anonymous: true
        main:
            pattern: ^/
            anonymous: false
            provider: ddbUsers
            form_login:
                login_path: login
                check_path: login_check
            logout:
                path: logout
                target: /

我错过了什么吗?在Visiteur控制器中有任何调整吗?

我尝试添加行

    encoders:
        WilsonCorp\Comptabilite\FraisBundle\Entity\Visiteur: md5

但它没有成功。

2 个答案:

答案 0 :(得分:1)

问题解决了,密码的db字段对于加密密码来说还不够大。

我的坏。

答案 1 :(得分:0)

尝试使用WilsonCorp\Bundle\Comptabilite\FraisBundle\Entity\Visiteur代替WilsonCorp\Comptabilite\FraisBundle\Entity\Visiteur作为编码器设置的关键。