使用电子邮件而不是用户名登录

Login with email instead of username

我全新安装了 Symfony 6 并尝试使用电子邮件而不是(默认)用户名登录

security.yaml

providers:
  app_user_provider:
  entity:
    class: App\Entity\User
    property: email
firewalls:
  main:
    lazy: true
    provider: app_user_provider
    json_login:
      check_path: api_login

行为正确:身份验证机制使用数据库中的 email 字段进行登录。问题是我在登录时必须传递 username 参数而不是 email ,否则我会收到此错误: 知道如何更改配置以接受 email 吗? 谢谢!

正如所解释的 there 你可以使用这个:

# config/packages/security.yaml
security:
    # ...

    firewalls:
        main:
            anonymous: true
            lazy: true
            json_login:
                check_path:    login
                username_path: email
                password_path: password