我正在尝试找出如何拥有两个独立的登录页面:一个用于 .com
页面的默认登录,另一个用于特定用户,例如用于路由 /special
。
在一个SF2项目中是否容易实现?
更新:
我的防火墙配置如下(我正在使用fosub)
providers:
custom:
id: ib.user_provider
fos_userbundle:
id: fos_user.user_manager
my_fos_facebook_provider:
id: my.facebook.user
firewalls:
special:
pattern: ^/special
form_login:
provider: fos_userbundle
login_path: /special/login
check_path: /special/login_check
use_referer: false
default_target_path: /special
success_handler: ib.login_handler
provider: custom
main:
pattern: ^/.*
form_login:
provider: fos_userbundle
login_path: /login
check_path: /login_check
use_referer: false
default_target_path: /
provider: custom
fos_facebook:
always_use_default_target_path: true
app_url: "http://apps.facebook.com/%facebook_app_id%/"
server_url: "http://aw.com/aw/web/app_dev.php/"
login_path: /login
check_path: /login_check/facebook
default_target_path: /checkFB
success_handler: facebook_auth_success_handler
provider: my_fos_facebook_provider
logout:
#handlers: ["fos_facebook.logout_handler"]
target: /
anonymous: ~
在ib.login_handler中,我有以下内容:
public function onAuthenticationSuccess(Request $request,TokenInterface $token)
{
if ($this->security->isGranted('ROLE_CATEGORIZER'))
{
$response = new RedirectResponse($this->router->generate('MyCoBundle_mailAdmin_index'));
}
return $response;
}
这个配置如果我访问mydomain.com/special,会出现以下错误:Fehler: Umleitungsfehler(英文为Error: Redirection error)。
更新:
在chrome中我得到了:找不到路由“GET /special/login”。
404 Not Found - NotFoundHttpException
1 linked Exception: ResourceNotFoundException »
我没有为登录路径设置特殊路由。我的目标只是让特定的用户仅能访问路径“/special”下的页面。