如何在Symfony 3.2中创建身份验证

时间:2017-02-01 09:49:04

标签: php authentication symfony

我不知道如何在Symfony 3.2中创建身份验证

我想从数据库加载安全用户。我在我的项目中使用msyql。

我的security.yml:

HEAD

user.php的:

git rev-parse

登录数据库管理员,密码管理员($ 2a $ 08 $ jHZj / wJfcVKlIwr5AvR78euJxYK7Ku5kURNhNx.7.CSIJ3Pq6LEPC)

帮助!)

1 个答案:

答案 0 :(得分:1)

我下载了你的项目,对其进行了审核,问题就在于:

1)您已在DeliveryAdminBundle中定义了自己的登录操作 - > SecurityController和登录表单在相应的视图中,因此您必须配置form_login并在安全配置中省略http_basic以使其正常工作。

在App \ Config \ security.yml中修改防火墙 - >主要部分:

    pattern: ^/admin
    provider: our_db_provider
    anonymous: ~
    form_login:
      login_path: _security_login      #login route
      check_path: _security_check      #credentials check route
      failure_path: _security_login    #failed login route
      default_target_path: a_home      #successfull login route
    logout:
      path: _security_logout           #logout route
      target: f_home                   #route to redirect after logout

2)因为您在DeliveryAdminBundle下有安全配置,所以您必须修改App \ Config \ routing.yml以使登录/注销路由正常工作。

...
security_conf:
    resource: "@DeliveryAdminBundle/Resources/config/routing/security.yml"
    prefix:   /admin

3)因为在第2步之后您的登录路由将指向../admin/login,您必须让非认证用户可以访问它以让他们登录。所以在您的App \ Config \ security.yml中修改access_control部分:

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

4)Symfony登录表格的默认名称为_username_password,因此请修改您的AdminBundle \ Resources \ views \ Security \ login.html.twig或更改默认表单域名称在security.yml

您的编码器和提供商配置完全没问题,如上所述,我的第一条评论错了。我对Delivery \ AdminBundle命名空间感到困惑,但显然你有一个名为DeliveryAdminBundle的包。这有点令人困惑,我建议你采用不同的命名策略,但这取决于你。