Проверка внешнего входа в Symfony 4

Я создал базовую форму входа в Symfony 4, подобную этой, и все работает нормально:

security:
    encoders:
        App\Entity\User:
            algorithm: bcrypt

    providers:
        backend_user_provider:
            entity:
                class:
                    App\Entity\User
                    property: email

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        cms:
            switch_user: true
            pattern: ^/
            http_basic: ~
            provider: backend_user_provider
            anonymous: ~
            form_login:
                login_path: login
                check_path: login_submit
            logout:
                path: logout
                target: login
            remember_me:
                secret:   '%kernel.secret%'
                lifetime: 604800

    access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, roles: ROLE_BACKEND }

Теперь я бы хотел добиться того, чтобы, если пользователь не существует, я мог бы сделать CURL-вызов в определенное внешнее расположение (с адресом электронной почты и паролем) и в зависимости от результата JSON (скажем, {success: true} или {success: false}) все равно войти в систему.

Как мне это сделать? Я знаю про Компонент защиты, но не могу понять, как применить его на практике.

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
76
1

Ответы 1

Для этой цели вы можете использовать ChainUserProvider и подключить его к ExternalUserProvider.

https://symfony.com/doc/4.0/security/multiple_user_providers.html

Возможно, вы захотите добавить еще несколько деталей, учитывая, что провайдеры пользователей не имеют доступа к паролю.

Cerad 17.11.2018 01:48

Другие вопросы по теме