« JWT SPA symfony exercice pratique » : différence entre les versions
| (Une version intermédiaire par le même utilisateur non affichée) | |||
| Ligne 376 : | Ligne 376 : | ||
===== routes.yaml ===== | ===== routes.yaml ===== | ||
< | <syntaxhighlight lang="yaml" line> | ||
api_refresh_token: | api_refresh_token: | ||
path: '/api/token/refresh' | path: '/api/token/refresh' | ||
defaults: { _controller: gesdinet.jwtrefreshtoken:refresh } | defaults: { _controller: gesdinet.jwtrefreshtoken:refresh } | ||
methods: [POST] | methods: [POST] | ||
</ | </syntaxhighlight> | ||
*Nous utilisons le suivant | *Nous utilisons le suivant | ||
< | <syntaxhighlight lang="yaml" line> | ||
api_refresh_token: | api_refresh_token: | ||
path: '/api/token/refresh' | path: '/api/token/refresh' | ||
defaults: { _controller: App\Service\Authentication\RefreshTokenSecurityCookieService:refresh } | defaults: { _controller: App\Service\Authentication\RefreshTokenSecurityCookieService:refresh } | ||
methods: [POST] | methods: [POST] | ||
</ | </syntaxhighlight> | ||
La copie complète est annotée avec les espaces où je place la validation du cookie et la création du cookie après l'ajout du nouveau jeton d'actualisation. | La copie complète est annotée avec les espaces où je place la validation du cookie et la création du cookie après l'ajout du nouveau jeton d'actualisation. | ||
===== RefreshTokenSecurityCookieService ===== | ===== RefreshTokenSecurityCookieService ===== | ||
< | <syntaxhighlight lang="php" line> | ||
<?php | |||
declare(strict_types=1); | declare(strict_types=1); | ||
namespace App\Service\Authentication; | namespace App\Service\Authentication; | ||
| Ligne 536 : | Ligne 536 : | ||
} | } | ||
} | } | ||
</ | </syntaxhighlight> | ||
De cette façon, lorsqu'un nouveau JWT est demandé, le jeton d'actualisation et le cookie sont validés. Un nouveau cookie est également émis ici, car chaque fois que le JWT est demandé, un nouveau jeton d'actualisation est émis et l'ancien cookie a donc été invalidé. | De cette façon, lorsqu'un nouveau JWT est demandé, le jeton d'actualisation et le cookie sont validés. Un nouveau cookie est également émis ici, car chaque fois que le JWT est demandé, un nouveau jeton d'actualisation est émis et l'ancien cookie a donc été invalidé. | ||
[[Category:Symfony]] [[Category:JWT]] | [[Category:Symfony]] [[Category:JWT]] | ||