Dav*_*les 9 symfony fosuserbundle
当有管理员用户的后端时,有一个登录表单,同时在我们网站的公共区域为普通用户提供正常的登录表单,这很有意思.
这可能使用FOSUserBundle吗?如何以"Symfony2"的方式完成?
Dav*_*les 24
首先,我们需要为管理区域配置一些特殊路由:
admin_login:
pattern: /admin/login
defaults: { _controller: FOSUserBundle:Security:login }
admin_login_check:
pattern: /admin/login_check
defaults: { _controller: FOSUserBundle:Security:check }
admin_logout:
pattern: /admin/logout
defaults: { _controller: FOSUserBundle:Security:logout }
Run Code Online (Sandbox Code Playgroud)
接下来,使用这些路由为管理区域配置特殊防火墙,并定义它们以匿名方式访问:
firewalls:
...
admin:
pattern: /admin/(.*)
form_login:
provider: fos_userbundle
login_path: admin_login
check_path: admin_login_check
default_target_path: yourproject_admin_default_index
logout:
path: admin_logout
target: admin_login
anonymous: true
context: application
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
context: application
...
access_control:
...
- { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/login_check$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
Run Code Online (Sandbox Code Playgroud)
好!我们刚刚将登录系统分为两部分:admin和main.
让我们覆盖SecurityController.为此,我们需要创建一个父类为FOSUserBundle的自定义包(请检查文档).在这个新的包中,创建控制器:
<?php
namespace YourProject\UserBundle\Controller;
use FOS\UserBundle\Controller\SecurityController as BaseController;
/**
* {@inheritDoc}
*/
class SecurityController extends BaseController
{
/**
* {@inheritDoc}
*/
public function renderLogin(array $data)
{
$requestAttributes = $this->container->get('request')->attributes;
if ('admin_login' === $requestAttributes->get('_route')) {
$template = sprintf('AdminBundle:Security:login.html.twig');
} else {
$template = sprintf('FOSUserBundle:Security:login.html.twig');
}
return $this->container->get('templating')->renderResponse($template, $data);
}
}
Run Code Online (Sandbox Code Playgroud)
而已!现在您可以编写AdminBundle:Security:login.html.twig :)
注意:不要忘记在管理区域中使用管理员路由!(在登录表单操作,注销链接等)
| 归档时间: |
|
| 查看次数: |
7090 次 |
| 最近记录: |