Кодирование пароля вручную в симфонии php - PullRequest
0 голосов
/ 03 августа 2020

привет, я хочу вручную закодировать пароль (пароль для входа не api ha sh) в php symphony

вот конфигурация безопасности

https://paste.ubuntu.com/p/mPM2p8ywcQ/

Я пробую этот код в APiController. php

namespace App\Controller;

use App\Repository\AccountsRepository;
use InstagramAPI\Instagram;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
.....
$encoder = $this->get('security.encoder_factory')->getEncoder($userClass);
$encodedPassword = $encoder->encodePassword("test");
   echo $encoded;

получил эту ошибку

Служба security.encoder_factory не найдена: хотя он существует в контейнере приложения, контейнер внутри «App \ Controller \ APiController» - это меньший локатор службы, который знает только о «doctrine», «form.factory», «http_kernel», «parameter_bag», «request_stack» , «маршрутизатор», «security.authorization_checker», «security.csrf.token_manager», «security.token_storage», «сериализатор», «сеанс», «шаблоны» и «веточка». Попробуйте вместо этого использовать внедрение зависимостей.

Я также попробую этот код:

....
use FOS\UserBundle\Model\User;
...
   $user = new App\Entity\User();
    $plainPassword = 'ryanpass';
    $encoded = $encoder->encodePassword($user, $plainPassword);

    $user->setPassword($encoded);

получил эту ошибку:

Невозможно использовать FOS \ UserBundle \ Model \ User as User, поскольку это имя уже используется

1 Ответ

0 голосов
/ 03 августа 2020

Как уже упоминалось, используйте внедрение зависимостей https://symfony.com/doc/current/service_container/autowiring.html

Для контроллера вы можете привязать службу через __constructor или как argument действия

используйте консольную команду cmd, чтобы найти подсказку типа bin/console debug:autowiring encoder_factory

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...