Неопределенный метод encodePassword. - ошибка в кодировщике безопасности Apiplateform undefined - PullRequest
0 голосов
/ 09 июля 2020

введите описание изображения здесь

У меня проблема в моем symfony api безопасности в службе PasswordService . Не могу найти кодировщик

Не могу угадать, что мне делать. Это мой файл security.yaaml:

введите описание изображения здесь

Это мой код:

<?php

namespace App\Services;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;


class PasswordService
{
    /**
     * @var PasswordService
     */
    private $userPasswordEncoder;

    /**
     * @param UserPasswordEncoderInterface $userPasswordEncoder
     */
    public function __construct(UserPasswordEncoderInterface $userPasswordEncoder)
    {
        $this->userPasswordEncoder = $userPasswordEncoder;
    }

    /**
     * @param object $entity
     * @param string $password
     * @return string
     */
    
    public function encode(object $entity, string $password): string
    {
        return $this->userPasswordEncoder->encodePassword($entity, $password);
    }

    /**
     * @param string $password
     * @return int
     */
    public function formatRequirement(string $password)
    {
        return preg_match('#^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\W)#', $password);
    }

    /**
     * @param object $entity
     * @param string $password
     * @return bool
     */
    public function isValid(object $entity, string $password): bool
    {
        return $this->userPasswordEncoder->isPasswordValid($entity, $password);
    }
}

1 Ответ

0 голосов
/ 10 июля 2020

Нет никакой реальной ошибки, просто здесь неправильная аннотация:

/**
 * @var PasswordService <========
 */
private $userPasswordEncoder;

Если вы удалите ее, все будет в порядке. (Или замените его на UserPasswordEncoderInterface)

...