【问题标题】:No encoder has been configured for account Symfony2.6没有为账户 Symfony2.6 配置编码器
【发布时间】:2015-04-28 08:04:17
【问题描述】:

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

我使用“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

但这并不能解决问题。

【问题讨论】:

    标签: php symfony


    【解决方案1】:

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

    我的错。

    【讨论】:

      【解决方案2】:

      尝试使用WilsonCorp\Bundle\Comptabilite\FraisBundle\Entity\Visiteur 而不是WilsonCorp\Comptabilite\FraisBundle\Entity\Visiteur 作为编码器设置的键。

      【讨论】:

      • 我也试过这个:错误消失了,但我的凭据不再被识别。
      • @TazMayhem 这是另一个问题,可能与未对使用登录表单提交的凭据进行编码有关
      猜你喜欢
      • 2019-08-24
      • 1970-01-01
      • 2012-11-16
      • 2020-07-20
      • 2021-07-29
      • 2022-12-01
      • 2015-11-30
      • 2012-03-26
      • 2016-04-18
      相关资源
      最近更新 更多