Я установил безопасность на одном из своих веб-сайтов с помощью Безопасность Symfony.
Мои пользователи могут получить доступ к веб-сайтам, только если они полностью вошли в систему. Каждый пользователь может быть клиентом или администратором.
Итак, в моем LoginFormAuthenticator я установил перенаправление следующим образом:
public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
{
$user = $token->getUser();
if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
if($user instanceof Employe) {
return new RedirectResponse($this->urlGenerator->generate('Admin'));
} else if($user instanceof Client){
return new RedirectResponse($this->urlGenerator->generate('AccueilClient'));
}
}else{
return new RedirectResponse($this->urlGenerator->generate('app_login'));
}
}
А форма входа выглядит так:
<form method="post">
<img class="responsive-img"
src="{{ asset('build/assets/images/Logo_resized.[hash8].jpg') }}">
{% if error %}
<div class="row">
<div class="card red">
<div class="card-content black-text">
<span class="card-content">{{ error.messageKey|trans(error.messageData, 'security') }}</span>
</div>
</div>
</div>
{% endif %}
{% if app.user %}
<div class="row">
<div class="card red">
<div class="card-content blue accent-1">
<span class="card-content"> Vous êtes déjà connecté en tant que : {{ app.user.nom }} {{ app.user.prenom }},
<a class="black-text" href="{{ path('redirect') }}">Accéder au site</a></span>
</div>
</div>
</div>
{% endif %}
<label for="inputEmail">Email</label>
<input type="email" value="{{ last_username }}" name="email" id="inputEmail"
class="form-control" required autofocus>
<label for="inputPassword">Mot de passe</label>
<input type="password" name="password" id="inputPassword" class="form-control" required>
<input type="hidden" name="_csrf_token"
value="{{ csrf_token('authenticate') }}"
>
<button class="btn btn-lg btn-primary blue_SPIE" type="submit">
Se connecter
</button>
</form>
Но каждый раз я пытался войти в систему. Меня всегда перенаправляют на страницу app_login
, а не на страницу Admin
или AccueilClient
. Я понятия не имею, почему меня не перенаправляют, как я хочу, на хорошую страницу.