Vous êtes sur la page 1sur 2

Atelier framework Web côté serveur Symfony 5

TP7: Authentification

1. Pour s’authentifier il faut commencer par créer une entité spécifique User en
utlisant la commande suivante :

php bin/console make:user

2. Générer le mapping avec la BD

php bin/console doctrine:migrations:diff

puis

php bin/console doctrine:migrations:migrate

3. afin de créer le module d’authentification, il faut exécuter cette commande

php bin/console make:Auth

4. Pour créer le module inscription il faut taper cette commande.

php bin/console make:registration-form

5. Nous avons maintenant la fonction qui permet de faire l’authentification, son code est le
suivant :

public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $providerKey)


{
if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
return new RedirectResponse($targetPath);
}

// For example : return new RedirectResponse($this->urlGenerator->generate('some_route'));


throw new \Exception('TODO: provide a valid redirect inside '.__FILE__);
}

Il faut changer le lien de la redirection pour que l’’utilisateur accède au chemin voulu juste après
l’authentification

Mahdi HAMZAOUI AU : 2020/2021


Atelier framework Web côté serveur Symfony 5

public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $providerKey)


{
if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
return new RedirectResponse($targetPath);
}

// For example : return new RedirectResponse($this->urlGenerator->generate('some_route'));


return new RedirectResponse($this->urlGenerator->generate('produit_index'));
}

6. Pour que l’interface d’authentification soit accessible sur 127.0.0.1 :8000, changer la route
de la fonction login comme suit :

class SecurityController extends AbstractController


{
/**
* @Route("/", name="app_login")
*/
public function login(AuthenticationUtils $authenticationUtils): Response
{
……
}}

7. Ajouter le lien de déconnexion dans le navbar

<li class="nav-item">
<a class="nav-link" href="{{ path('app_logout') }}">
<i class="fa fa-sign-out" ariahidden="true" style="color:red"></i>
Logout</a>
</li>

8. Empêcher l’affichage du navbar dans la page d’authentification

{% if app.user %}
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
…………………..
{% endif %}

Mahdi HAMZAOUI AU : 2020/2021

Vous aimerez peut-être aussi