#php #symfony #fosuserbundle
#php #symfony #fosuserbundle
Вопрос:
Я хотел бы добавить свой метод входа FOSUser в свой security.yml, потому что я использую центр аутентификации, но я хочу аутентификацию с помощью формы входа на моей домашней странице (с таблицей пользователей в базе данных, которая отличается от аутентификации User от CAS)
Итак, я настроил свой security.yml следующим образом :
# app/config/security.yml
security:
encoders:
FOSUserBundleModelUserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
app:
id: bes_auth.user_provider
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
# anonymous: true
public:
pattern: ^accueil
security: false
anonymous: true
main:
logout_on_user_change: true
pattern: ^/(admin|profile|packages|securiteInformatique|logout)
# pattern: ^/(?!accueil)
guard:
authenticators:
- app.security.login_form_authenticator:
check_path: fos_user_check_path
- bes_auth.authenticator
entry_point: SitePagesBundleSecurityLoginFormAuthenticator
logout:
path: deconnexion #nom de la route de déconnexion
target: /
success_handler: bes_auth.authenticator
anonymous: true
access_control:
- { path: ^/admin, role: ROLE_SUPER_ADMIN }
- { path: ^/accueil, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
Но сейчас у меня эта ошибка :
Недопустимый тип для пути «security.firewalls.main.guard.authenticators.0». Ожидаемый скаляр, но получил массив.
Речь идет о :
guard:
authenticators:
- app.security.login_form_authenticator:
check_path: fos_user_check_path
- bes_auth.authenticator
entry_point: SitePagesBundleSecurityLoginFormAuthenticator
Но я не понимаю, что не так, может кто-нибудь мне помочь, пожалуйста?
Комментарии:
1. так что это написано в нужном скаляре ошибок. symfony.com/doc/current/security /…
Ответ №1:
просто измените свой первый защитный аутентификатор без опции check_path: fos_user_check_path следующим образом :
...........
guard:
authenticators:
- app.security.login_form_authenticator
- bes_auth.authenticator
если вы хотите больше объяснить, это документ: здесь
спасибо, я надеюсь, что это поможет вам