У меня возникла проблема с пользовательским входом для входа в систему Symfony, вдохновленным учебником «Как создать традиционную форму входа в систему» из поваренной книги Symfony. Все работает нормально, пока я не вхожу в систему с/логином. Тогда каждый маршрут, который я хочу перенаправить, вызывает бесконечный цикл. Может, я что-то упустил?Безопасность Symfony 3 После входа в систему существует бесконечное перенаправление
//security.yml безопасности:
encoders:
AppBundle\Entity\User:
algorithm: bcrypt
providers:
mysql:
entity:
class: AppBundle:User
property: username
firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: ~
form_login:
login_path: login
check_path: login_check
logout:
path: logout
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: IS_AUTHENTICATED_FULLY }
//routing.yml
index:
path:/
defaults: { _controller: AppBundle:Main:main }
app:
resource: "@AppBundle/Controller/"
type: annotation
//SecurityController.php
<?php
namespace AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class SecurityController extends Controller
{
/**
* @Route("/login", name="login")
*/
public function loginAction() {
$authenticationUtils = $this->get("security.authentication_utils");
$error = $authenticationUtils->getLastAuthenticationError();
$name = $authenticationUtils->getLastUsername();
return $this->render(
':security:login.html.twig',
["name" => $name, "error" => $error]
);
}
/**
* @Route("/login_check", name="login_check")
*/
public function loginCheckAction() {
}
/**
* @Route("/logout",name="logout")
*/
public function logoutAction() {
}
}
//login.twig.html
{% if error %}
<div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}
<form action="{{ path('login_check') }}" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="_username" value="{{ name }}" />
<label for="password">Password:</label>
<input type="password" id="password" name="_password" />
<input type="hidden" name="_target_path" value="/" />
<button type="submit">login</button>
</form>
Проверьте, пожалуйста, – vnarek