我遇到Symfony身份验证问题。
我的security.yml文件如下所示:
providers:
corebundle_admin:
entity:
class: CoreAdminBundle:Admin
property: username
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
admin:
pattern: ^/admin
form_login:
provider: corebundle_admin
login_path: /admin/login
check_path: /admin/login
logout: true
anonymous: true
access_control:
- { path: ^/admin/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, role: ROLE_ADMIN }
我的控制员:
/**
* @Route("/login")
* @Method("GET")
*/
public function loginAction() {
return $this->render('CoreAdminBundle:Admin:login.html.twig');
}
/**
* @param Request $request
*
* @Route("/login")
* @Method("POST")
*/
public function checkAction(Request $request) {
// do something
}
一切正常,但是当我尝试向/ admin / login发送POST请求时,响应为302并重定向到/ admin / login ...
我被困在这里,任何帮助都将受到赞赏。
由于
答案 0 :(得分:0)
将您的登录检查操作更改为:/ login_check或任何名称'/ login'它将起作用
/**
* @Route("/login")
* @Method("GET")
*/
public function loginAction() {
return $this->render('CoreAdminBundle:Admin:login.html.twig');
}
/**
* @param Request $request
*
* @Route("/login_check")
* @Method("POST")
*/
public function checkAction(Request $request) {
// do something
}
编辑您的security.yml
provider: corebundle_admin
login_path: /admin/login
check_path: /admin/login_check