Login Symfony3.1:传统的登录表单没有';行不通
我已经按照symfony官方文档创建了一个登录表单: 表单登录将显示,但当我尝试与有效用户连接时,我什么都没有:没有错误,没有重定向。。。表单将再次显示,但不显示任何消息 这是我的安全。yml:Login Symfony3.1:传统的登录表单没有';行不通,login,firewall,symfony-3.1,Login,Firewall,Symfony 3.1,我已经按照symfony官方文档创建了一个登录表单: 表单登录将显示,但当我尝试与有效用户连接时,我什么都没有:没有错误,没有重定向。。。表单将再次显示,但不显示任何消息 这是我的安全。yml: security: providers: in_memory: memory: users: superman: password: clark ro
security:
providers:
in_memory:
memory:
users:
superman:
password: clark
roles: ROLE_PRD, ROLE_CAT, ROLE_BATMAN
batman:
password: bruce
roles: ROLE_CAT, ROLE_BATMAN
test:
password: test
roles: ROLE_CAT, ROLE_BATMAN
encoders:
Symfony\Component\Security\Core\User\User: plaintext
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
autre:
pattern: ^/catalogue/login
security: false
main:
provider: in_memory
anonymous: ~
form_login:
login_path: login
check_path: login
#default_target_path: /catalogue/admin/
pattern: ^/catalogue/admin
access_control:
- { path: ^/catalogue/admin/produit/$, roles: ROLE_BATMAN}
- { path: ^/catalogue/admin/produit, roles: ROLE_PRD}
- { path: ^/catalogue/admin/categorie, roles: ROLE_CAT}
这是我的控制器SecurityController.php:
<?php
namespace CatalogueBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class SecurityController extends Controller
{
public function loginAction(Request $request)
{
$authenticationUtils = $this->get('security.authentication_utils');
// get the login error if there is one
$error = $authenticationUtils->getLastAuthenticationError();
// last username entered by the user
$lastUsername = $authenticationUtils->getLastUsername();
//return new Response("<html> <body> SecuriteController </body> </html>");
return $this->render('securite/login.html.twig', array(
'last_username' => $lastUsername,
'error' => $error,
));
}
}
似乎symfony安全系统在提交时没有捕获我的表单数据,我的日志中没有任何内容 我想你的问题不止一个。 为了帮助您继续您的项目
也许你必须移动“autre”防火墙中的“form_login:”部分,不要忘记你的提供商…我认为你这里有不止一个问题。 为了帮助您继续您的项目
也许你必须移动“autre”防火墙中的“form_login:”部分,别忘了你的提供商…我还阅读了关于新安装symfony 3.2的教程,我仍然有同样的问题:登录表单正在刷新,似乎没有调用安全系统!我还阅读了新安装的symfony 3.2的教程,但仍然存在同样的问题:登录表单正在刷新,似乎没有调用安全系统!
{% extends 'base.html.twig' %}
{% block body %}
{% if error %}
<div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}
<form action="{{ path('login') }}" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" />
<label for="password">Password:</label>
<input type="password" id="password" name="_password" />
<button type="submit">login</button>
</form>
{% endblock %}
login:
path: /catalogue/login
defaults: { _controller: CatalogueBundle:Security:login }