BCard - Documentation technique

RefreshToken
in package

Jeton de rafraîchissement JWT permettant à l'API mobile de renouveler une session sans ré-authentification.

Créé, validé, révoqué et purgé exclusivement par le service RefreshTokenService : aucun autre code du projet n'instancie RefreshToken. Le rattachement au compte se fait par username, qui stocke l'e-mail de l'utilisateur plutôt que de passer uniquement par la relation user — changer l'e-mail d'un utilisateur invalide donc de fait ses jetons existants. La politique appliquée par le service est celle d'un jeton unique par utilisateur, les précédents étant révoqués à chaque nouvelle émission. valid porte la date d'expiration, calculée à la création à partir du TTL du service (2 592 000 secondes, soit 30 jours, par défaut) ; isValid() est un champ dérivé qui la compare à l'instant présent. Les jetons expirés ne sont pas purgés automatiquement par une tâche planifiée : ils sont supprimés soit lors d'une tentative de validation qui échoue (RefreshTokenService::validateRefreshToken()), soit via l'appel explicite de RefreshTokenService::cleanExpiredTokens().

Attributes
#[Entity]
$repositoryClass: 'App\Repository\RefreshTokenRepository'
#[Table]
$name: 'refresh_tokens'

Table of Contents

Properties

$id  : int|null
$refreshToken  : string
$user  : User|null
$username  : string
$valid  : DateTime

Methods

getId()  : int|null
getRefreshToken()  : string
getUser()  : User|null
getUsername()  : string
getValid()  : DateTime
isValid()  : bool
setRefreshToken()  : self
setUser()  : self
setUsername()  : self
setValid()  : self

Properties

$id

private int|null $id = null
Attributes
#[Column]
$type: 'integer'
#[GeneratedValue]
#[Id]

$refreshToken

private string $refreshToken
Attributes
#[Column]
$type: 'string'
$length: 128
$unique: true

$user

private User|null $user = null
Attributes
#[JoinColumn]
$name: 'user_id'
$referencedColumnName: 'id'
$onDelete: 'CASCADE'
#[ManyToOne]
$targetEntity: \App\Entity\User::class

$username

private string $username
Attributes
#[Column]
$type: 'string'
$length: 255

$valid

private DateTime $valid
Attributes
#[Column]
$type: 'datetime'

Methods

getId()

public getId() : int|null
Return values
int|null

getRefreshToken()

public getRefreshToken() : string
Return values
string

getUsername()

public getUsername() : string
Return values
string

getValid()

public getValid() : DateTime
Return values
DateTime

setRefreshToken()

public setRefreshToken(string $refreshToken) : self
Parameters
$refreshToken : string
Return values
self

setUser()

public setUser(User|null $user) : self
Parameters
$user : User|null
Return values
self

setUsername()

public setUsername(string $username) : self
Parameters
$username : string
Return values
self

setValid()

public setValid(DateTime $valid) : self
Parameters
$valid : DateTime
Return values
self

        
On this page

Search results