Попробуйте сравнить файл до и после, чтобы увидеть различия.
Вы проверили журналы?Вы получаете сообщение об ошибке?
Поскольку в статье говорится об изменении количества различных файлов, трудно сказать.Т.е. опубликованный вами файл не содержит ничего из статьи, например, брандмауэр ^ / api
Возможно, создайте каркасную строку для строки в статье в отдельной папке, а затем сравните с вашим проектом, файл пофайл, добавляя материал скелета ...
Похоже, вы не указываете своему главному брандмауэру, какого провайдера использовать для аутентификации, поэтому ваш API может переопределить его ...
Т.е.Ваш main: form_login: provider: должен быть пользователем, и ваш API может использовать пакет fos_user
Оба должны иметь возможность использовать одного и того же провайдера, если имена полей совпадают
Редактировать: 1) Оформить заказ симфония брандмауэры и контроль доступа
2) Решите, хотите ли вы, чтобы те же пользователи, что и ваш основной сайт, или другой пользовательский провайдер для API
3) Направьте form_login в соответствующем разделе брандмауэра на провайдера пользователя, которого вы хотите использовать
Выше зарегистрирован один провайдер, «пользователи» в провинции.дер разделПредполагая, что вы хотите разделить пользователей на свой основной сайт: если вы следили за статьей, вы бы поместили «fos_userbundle» в качестве другого провайдера в этом разделе и добавили разделы брандмауэра для разрешения oauth для API.Под "form_login" на "aouth_authorize" есть поставщик, который указывает на fos_userbundle.Вы также должны были добавить маршрут API, чтобы указать, на какой маршрут отвечает ваш API (шаблон: ^ / api <== любой маршрут, начинающийся с API) </p>
Я подозреваю, что ваш пользовательский провайдер в главном разделе сейчас незнать, какой пользовательский пакет использовать для аутентификации.т.е. вы пытались войти в систему как пользователь API на вашем главном сайте?Это подтверждает подлинность?Если это так, вы должны указать своему «основному» разделу в брандмауэре, что поставщик пользователей должен быть поставщиком «пользователей», добавив поставщика: пользователей в раздел «form_login» брандмауэра.
Если вывы хотите использовать отдельного провайдера для вашего основного сайта и вашего API:
(непроверенный код)
security:
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
providers:
users:
entity:
class: 'App\Entity\User'
property: 'username'
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
oauth_token:
pattern: ^/oauth/v2/token
security: false
oauth_authorize:
pattern: ^/oauth/v2/auth
form_login:
provider: fos_userbundle
check_path: /oauth/v2/auth_login_check
login_path: /oauth/v2/auth_login
use_referer: true
api:
pattern: ^/api
fos_oauth: true
stateless: true
anonymous: false
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
anonymous: true
guard:
authenticators:
- App\Security\LoginFormAuthenticator
form_login:
provider: users
login_path: app_login
check_path: app_login
logout:
path: app_logout
target: app_user_index
secured_area:
form_login:
csrf_token_generator: security.csrf.token_manager
encoders:
App\Entity\User:
algorithm: bcrypt
cost: 12
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
# activate different ways to authenticate
# http_basic: true
# https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate
# form_login: true
# https://symfony.com/doc/current/security/form_login_setup.html
# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
access_control:
# - { path: ^/delete, roles: ROLE_ADMIN }
# - { path: ^/profile, roles: ROLE_USER }
- { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] }
Если вы хотите использовать одного провайдера для основного сайта и API:
(непроверенный код)
security:
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
providers:
users:
entity:
class: 'App\Entity\User'
property: 'username'
firewalls:
oauth_token:
pattern: ^/oauth/v2/token
security: false
oauth_authorize:
pattern: ^/oauth/v2/auth
form_login:
provider: users
check_path: /oauth/v2/auth_login_check
login_path: /oauth/v2/auth_login
use_referer: true
api:
pattern: ^/api
fos_oauth: true
stateless: true
anonymous: false
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
anonymous: true
guard:
authenticators:
- App\Security\LoginFormAuthenticator
form_login:
provider: users
login_path: app_login
check_path: app_login
logout:
path: app_logout
target: app_user_index
secured_area:
form_login:
csrf_token_generator: security.csrf.token_manager
encoders:
App\Entity\User:
algorithm: bcrypt
cost: 12
role_hierarchy:
ROLE_ADMIN: ROLE_USER
# activate different ways to authenticate
# http_basic: true
# https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate
# form_login: true
# https://symfony.com/doc/current/security/form_login_setup.html
# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
access_control:
# - { path: ^/delete, roles: ROLE_ADMIN }
# - { path: ^/profile, roles: ROLE_USER }
- { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] }