Я хочу выполнить традиционную проверку имени пользователя (количество символов и действительный адрес электронной почты) и пароля (количество символов) перед выполнением аутентификации.
Пользователи находятся в базе данных, и я не хочу обращаться к базе данных до того, как проверка пройдет успешно.
У меня настроен LexikJWTAuthenticationBundle с Symfony 4.1, и он работает.Контроллера нет, так как аутентификация полностью обрабатывается пакетом.
Я не уверен, как я могу выполнить вышеупомянутую проверку.Пожалуйста помоги.
Найдите ниже мою конфигурацию безопасности, чтобы понять, что я уже настроил.
security:
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]
encoders:
App\Entity\User:
id: app.bcrypt_plus_encoder
providers:
db_user_provider:
entity:
class: App\Entity\User
# the property to query by - e.g. username, email, etc
property: email
# if you're using multiple entity managers
# manager_name: customer
firewalls:
guest:
pattern: ^/api/guest
stateless: true
anonymous: true
login:
pattern: ^/api/login
user_checker: App\Security\UserChecker
stateless: true
anonymous: true
provider: db_user_provider
json_login:
check_path: /api/login_check
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: App\Security\Http\Authentication\AuthenticationFailureHandler
require_previous_session: false
username_path: email
password_path: passw
api:
pattern: ^/api
stateless: true
guard:
provider: db_user_provider
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
access_control:
- { path: ^/api/guest, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api, roles: IS_AUTHENTICATED_FULLY }