我尝试在我的网站上添加基本的身份验证服务。我尝试登录时收到“没有为帐户配置编码器”。
我使用“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
但它没有成功。
答案 0 :(得分:1)
问题解决了,密码的db字段对于加密密码来说还不够大。
我的坏。
答案 1 :(得分:0)
尝试使用WilsonCorp\Bundle\Comptabilite\FraisBundle\Entity\Visiteur
代替WilsonCorp\Comptabilite\FraisBundle\Entity\Visiteur
作为编码器设置的关键。