Аутентификация Symfony: плохие учетные данные - PullRequest
0 голосов
/ 01 января 2019

Я создал форму аутентификации, и при попытке войти в систему я получаю сообщение об ошибке «Недействительные учетные данные».Я проверил error.messageKey, и проблема не в имени пользователя, поэтому проблема должна исходить из пароля.

Я посмотрел везде и не вижу, что не так.У вас есть какие-либо идеи?

Заранее спасибо

security:
    hide_user_not_found: false
    encoders:
        App\Entity\Utilisateur:
            algorithm: bcrypt
            cost: 5

    providers:
        in_memory: { memory: ~ }

        in_database:
            entity:
                class: App\Entity\Utilisateur
                property: mail

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
             anonymous: true

            provider: in_database

            form_login:
                login_path: login
                check_path: login
                default_target_path: home

и login.twig

                <form action="{{ path('login') }}" method="POST">
                    <div class="form-group" id="formMail">
                        <label for="email">Email :</label>
                        <input type="email" class="form-control" id="email" placeholder="dupont@gmail.com" required name="_username">
                        <span class="" id="spanMail"></span>
                        <span class="" id="spanErrMail"></span>
                    </div>

                    <div class="form-group" id="formMdp">
                        <label for="pwd">Mot de passe :</label>
                        <input type="password" class="form-control" id="pwd" placeholder="******" required name="_password">
                        <span class="" id="spanMdp"></span>
                        <span class="" id="spanErrMdp"></span>
                    </div>

Пользовательский объект

/**
 * @ORM\Entity(repositoryClass="App\Repository\UtilisateurRepository")
 * @UniqueEntity(
 * fields={"mail"},
 * message="Adresse mail déjà utilisée")
 */
 class Utilisateur implements UserInterface
{
/**
 * @ORM\Id()
 * @ORM\GeneratedValue()
 * @ORM\Column(type="integer")
 */
private $id;

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

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

/**
 * @ORM\Column(type="string", length=255)
 * @Assert\Email(
 *     message = "L'e-mail {{ value }} n'est pas valide ")
 */
private $mail;

/**
 * @ORM\Column(type="string", length=255)
 * @Assert\Length(min="5", minMessage="Le mot de passe doit faire au moins 5 caractères")
 */
private $mdp;

public function getId(): ?int
{
    return $this->id;
}

public function getNom(): ?string
{
    return $this->nom;
}

public function setNom(string $nom): self
{
    $this->nom = $nom;

    return $this;
}

public function getPrenom(): ?string
{
    return $this->prenom;
}

public function setPrenom(string $prenom): self
{
    $this->prenom = $prenom;

    return $this;
}

public function getMail(): ?string
{
    return $this->mail;
}

public function setMail(string $mail): self
{
    $this->mail = $mail;

    return $this;
}

public function getMdp(): ?string
{
    return $this->mdp;
}

public function setMdp(string $mdp): self
{
    $this->mdp = $mdp;

    return $this;
}

public function getPassword(){}
public function getUsername(){
    return $this->mail;
}
public function eraseCredentials(){}
public function getSalt(){
    return '';
}
public function getRoles()
{
    return ['ROLE_USER'];
}
}

1 Ответ

0 голосов
/ 01 января 2019

Я обнаружил свою ошибку.Я использовал свои собственные имена функций для получения электронной почты и пароля.

Я должен был реализовать getUsername () и getPassword ().

public function getMdp(): ?string
{
    return $this->mdp;
}

public function setMdp(string $mdp): self
{
    $this->mdp = $mdp;

    return $this;
}

public function getPassword(){
    return $this->mdp;
}

public function getUsername(){
    return $this->mail;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...