Différences entre les versions de « Programmation PHP/Symfony/API »

 
== Sécurité ==
Une API étant ''stateless'', l'authentification est assurée à chaque requête, par l'envoi par le client d'un token {{w|JSON Web Token}} (JWT) dans l'en-tête HTTP (clé ''Authorization''). Côté serveur, on transforme ensuite le JWT reçu en objet utilisateur pour accéder à l'identité du client au sein du code. Ceci est fait en configurant security.yaml, pour qu'un évènement firewall appelle automatiquement un guard authenticator<ref>https://symfony.com/doc/current/security/guard_authentication.html</ref> :
 
<syntaxhighlight lang=yaml>
Il existe plusieurs bibliothèques d'authentification JWT pour Symfony, comme https://github.com/lexik/LexikJWTAuthenticationBundle.
security:
firewalls:
main:
guard:
authenticators:
- App\Security\TokenAuthenticator
</syntaxhighlight>
 
=== Test ===
Pour tester en shell :
<syntaxhighlight lang=bash>