Comus Party 1.0.0
Application web de mini-jeux en ligne
Chargement...
Recherche...
Aucune correspondance
rememberToken.class.php
Aller à la documentation de ce fichier.
1<?php
10
11namespace ComusParty\Models;
12
13use DateTime;
14use Random\RandomException;
15
21{
26 private int $userId;
27
32 private string $token;
33
38 private string $key;
39
44 private DateTime $createdAt;
45
50 private DateTime $expiresAt;
51
52
61 public function __construct(int $userId, ?string $token = null, ?string $key = null, ?DateTime $createdAt = null, ?DateTime $expiresAt = null)
62 {
63 $this->userId = $userId;
64 $this->token = $token ?? '';
65 $this->key = $key ?? '';
66 $this->createdAt = $createdAt ?? new DateTime();
67 $this->expiresAt = $expiresAt ?? new DateTime('+1 month');
68 }
69
74 public function getUserId(): int
75 {
76 return $this->userId;
77 }
78
84 public function setUserId(int $userId): void
85 {
86 $this->userId = $userId;
87 }
88
93 public function getToken(): string
94 {
95 return $this->token;
96 }
97
103 public function setToken(string $token): void
104 {
105 $this->token = $token;
106 }
107
112 public function getKey(): string
113 {
114 return $this->key;
115 }
116
122 public function setKey(string $key): void
123 {
124 $this->key = $key;
125 }
126
131 public function getCreatedAt(): DateTime
132 {
133 return $this->createdAt;
134 }
135
141 public function setCreatedAt(DateTime $createdAt): void
142 {
143 $this->createdAt = $createdAt;
144 }
145
150 public function getExpiresAt(): DateTime
151 {
152 return $this->expiresAt;
153 }
154
160 public function setExpiresAt(DateTime $expiresAt): void
161 {
162 $this->expiresAt = $expiresAt;
163 }
164
169 public function __toArray(): array
170 {
171 return [
172 'userId' => $this->userId,
173 'token' => $this->token,
174 'createdAt' => $this->createdAt->format('Y-m-d H:i:s'),
175 'expiresAt' => $this->expiresAt->format('Y-m-d H:i:s')
176 ];
177 }
178
183 public function isExpired(): bool
184 {
185 return $this->expiresAt <= new DateTime();
186 }
187
193 public function generateToken(): string
194 {
195 $this->token = bin2hex(random_bytes(30));
196 return $this->token;
197 }
198
204 public function generateKey(): string
205 {
206 $key = bin2hex(random_bytes(60));
207 $this->key = password_hash($key, PASSWORD_DEFAULT);
208 return $key;
209 }
210
216 public function isValid(string $key): bool
217 {
218 return password_verify($key, $this->key);
219 }
220}
getUserId()
Retourne l'identifiant de l'utilisateur associé au jeton de connexion.
setExpiresAt(DateTime $expiresAt)
Modifie la date d'expiration du jeton de connexion.
getCreatedAt()
Retourne la date de création du jeton de connexion.
getToken()
Retourne le jeton de connexion.
generateToken()
Génère un jeton de connexion.
setKey(string $key)
Modifie la clef d'autorisation.
__toArray()
Retourne un tableau associatif contenant les informations du jeton de connexion.
__construct(int $userId, ?string $token=null, ?string $key=null, ?DateTime $createdAt=null, ?DateTime $expiresAt=null)
Constructeur de la classe rememberToken.
isExpired()
Vérifie si le jeton de connexion est valide.
getExpiresAt()
Retourne la date d'expiration du jeton de connexion.
setUserId(int $userId)
Modifie l'identifiant de l'utilisateur associé au jeton de connexion.
generateKey()
Génère une clef d'autorisation.
getKey()
Retourne la clef d'autorisation.
setCreatedAt(DateTime $createdAt)
Modifie la date de création du jeton de connexion.
setToken(string $token)
Modifie le jeton de connexion.
isValid(string $key)
Vérifie si la clef d'autorisation est valide.