如何在symfony 3中为easyadmin和客户端页面创建单独的登录页

问题描述:

我已经在Symfony 3中安装了FOSUser包和Easyadmin。一切正常。如何在symfony 3中为easyadmin和客户端页面创建单独的登录页

仅供参考,我的easyadmin路线是/admin

如果用户未登录并将访问/admin路由,它将被重定向到/login,这是配置的FOSUser软件包。

我想要的是有一个单独的页面管理员登录和客户端登录。

假设,如果用户(未登录)将访问/admin它应该被重定向到管理登录是/admin/login。如果用户将访问客户端的/dashboard,则应将其重定向到/login

下面是我的security.yml配置:

#From security.yml file 

    firewalls: 
    main: 
     pattern: ^/ 
     form_login: 
      provider: fos_userbundle 
      csrf_token_generator: security.csrf.token_manager 
      # if you are using Symfony < 2.8, use the following config instead: 
      # csrf_provider: form.csrf_provider     
      login_path: /login 
      check_path: /login_check 
      always_use_default_target_path: false 
      default_target_path: /dashboard 

下面是我的routing.yml配置:

#routing.yml 
easy_admin_bundle: 
    resource: "@EasyAdminBundle/Controller/" 
    type:  annotation 
    prefix: /admin 

有谁知道?

+0

如果你添加一些权限,用户表,那么你可以使用一个登录页面做到这一点,让PHP弄清楚,如果它是一个用户或管理员 – Jorn

+0

我使用fosUser束。如果我试图访问'/ admin',它会自动重定向到'/ login'。你有关于这个的一些教程吗?谢谢 – zms

+0

我不知道fosUser包。但是我要说的是,如果你检查用户权限,你只需要'/ login'。否则,可能会有一种方式,但不是我可以帮助你的一种方式,对不起。 – Jorn

更改我的设置后,我解决了我的问题。

我在我的路由上的fos_user下添加了prefix:/admin。意思是,登录将被重定向到/admin,但之后,由于用户尚未登录,它将推回到/admin/login uri。

# app/config/routing.yml 
fos_user: 
    prefix: /admin 
    resource: "@FOSUserBundle/Resources/config/routing/all.xml" 

#Easy admin bundle 
easy_admin_bundle: 
    resource: "@EasyAdminBundle/Controller/" 
    type:  annotation 
    prefix: /admin 

此外,这里是我的security.yml配置。确保提供商是fos_userbundle

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: [ ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ] 
providers: 
    fos_userbundle: 
     id: fos_user.user_provider.username_email 

firewalls:    
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 
    admin_area: 
     pattern: ^/admin 
     anonymous: ~ 
     provider: fos_userbundle 
     form_login: 
      default_target_path: /admin 
      check_path: /admin/login_check 
      login_path: /admin/login 
      remember_me: true 
     logout: 
      path: /admin/logout 
      target: /admin 
    main: 
     anonymous: ~