Skip to content

Commit 333811e

Browse files
committed
fix hasAccessTokenExpired()& hasHmacTokenExpired() args.
fix docs refinement. fix test.
1 parent 7e2432e commit 333811e

File tree

7 files changed

+38
-41
lines changed

7 files changed

+38
-41
lines changed

docs/references/authentication/hmac.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,19 +115,17 @@ $expiresAt = Time::parse('2024-11-15 00:00:00');
115115
$token = $user->setHmacTokenExpirationById($token->id, $expiresAt);
116116

117117
// Or Expiration date = 1 month + 15 days into the future
118-
$expiresAt = Time::now();
119-
$expiresAt = $expiresAt->addMonths(1);
120-
$expiresAt = $expiresAt->addDays(15);
118+
$expiresAt = Time::now()->addMonths(1)->addDays(15);
121119
$token = $user->setHmacTokenExpirationById($token->id, $expiresAt);
122120
```
123121

124122
The following support methods are also available:
125123

126-
`hasHmacTokenExpired(AccessToken $HmacToken)` - Checks if the HMAC key has expired. Returns `true` if the HMAC key has expired, `false` if not, and `null` if the expire date is null.
124+
`hasHmacTokenExpired(AccessToken $HmacToken)` - Checks if the HMAC key has expired. Returns `true` if the HMAC key has expired, `false` if not.
127125

128126
```php
129127
$expiresAt = Time::parse('2024-11-03 12:00:00');
130-
$token = $this->user->generateHmacToken('foo', ['foo:bar'], $expiresAt);
128+
$token = $this->user->generateHmacToken('foo', ['foo.bar'], $expiresAt);
131129

132130
$this->user->hasHmacTokenExpired($token); // Returns true
133131
```
@@ -137,7 +135,7 @@ $this->user->hasHmacTokenExpired($token); // Returns true
137135
```php
138136
$expiresAt = Time::parse('2024-11-03 12:00:00');
139137

140-
$token = $this->user->generateHmacToken('foo', ['foo:bar'], $expiresAt);
138+
$token = $this->user->generateHmacToken('foo', ['foo.bar'], $expiresAt);
141139
$this->user->canHmacTokenExpire($token); // Returns true
142140

143141
$token2 = $this->user->generateHmacToken('bar');
@@ -282,6 +280,7 @@ public $unusedTokenLifetime = YEAR;
282280
```
283281

284282
### HMAC Keys Expiration vs Lifetime
283+
285284
Expiration and Lifetime are different concepts. The lifetime is the maximum time allowed for the HMAC Key to exist since its last use. HMAC Key expiration, on the other hand, is a set date in which the HMAC Key will cease to function.
286285

287286
### Login Attempt Logging

docs/references/authentication/tokens.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -149,28 +149,26 @@ Access Tokens can be set to expire through the `generateAccessToken()` method. T
149149
```php
150150
// Expiration date = 2024-11-03 12:00:00
151151
$expiresAt = Time::parse('2024-11-03 12:00:00');
152-
$token = $this->user->generateAccessToken('foo', ['foo:bar'], $expiresAt);
152+
$token = $this->user->generateAccessToken('foo', ['foo.bar'], $expiresAt);
153153

154154
// Expiration date = 2024-11-15 00:00:00
155155
$expiresAt = Time::parse('2024-11-15 00:00:00');
156156
$user->setAccessTokenExpirationById($token->id, $expiresAt);
157157

158158
// Or Expiration date = 1 month + 15 days into the future
159-
$expiresAt = Time::now();
160-
$expiresAt = $expiresAt->addMonths(1);
161-
$expiresAt = $expiresAt->addDays(15);
159+
$expiresAt = Time::now()->addMonths(1)->addDays(15);
162160

163161
$user->setAccessTokenExpirationById($token->id, $expiresAt);
164162
```
165163

166164
The following support methods are also available:
167165

168-
`hasAccessTokenExpired(AccessToken $accessToken)` - Checks if Access Token has expired. Returns `true` if the Access Token has expired, `false` if not, and `null` if the expire date is not set.
166+
`hasAccessTokenExpired(AccessToken $accessToken)` - Checks if Access Token has expired. Returns `true` if the Access Token has expired, `false` if not.
169167

170168
```php
171169
$expiresAt = Time::parse('2024-11-03 12:00:00');
172170

173-
$token = $this->user->generateAccessToken('foo', ['foo:bar'], $expiresAt);
171+
$token = $this->user->generateAccessToken('foo', ['foo.bar'], $expiresAt);
174172

175173
$this->user->hasAccessTokenExpired($token); // Returns true
176174
```
@@ -180,7 +178,7 @@ $this->user->hasAccessTokenExpired($token); // Returns true
180178
```php
181179
$expiresAt = Time::parse('2024-11-03 12:00:00');
182180

183-
$token = $this->user->generateAccessToken('foo', ['foo:bar'], $expiresAt);
181+
$token = $this->user->generateAccessToken('foo', ['foo.bar'], $expiresAt);
184182
$this->user->canAccessTokenExpire($token2); // Returns false
185183

186184
$token2 = $this->user->generateAccessToken('bar');

src/Authentication/Traits/HasAccessTokens.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ public function setAccessToken(?AccessToken $accessToken): self
177177
*
178178
* @return bool Returns true if Access Token has expired, false if not
179179
*/
180-
public function hasAccessTokenExpired(?AccessToken $accessToken): bool
180+
public function hasAccessTokenExpired(AccessToken $accessToken): bool
181181
{
182182
return $accessToken->expires !== null && $accessToken->expires->isBefore(Time::now());
183183
}
@@ -211,6 +211,6 @@ public function setAccessTokenExpirationById(int $id, Time $expiresAt): bool
211211
*/
212212
public function canAccessTokenExpire(AccessToken $accessToken): bool
213213
{
214-
return isset($accessToken->expires);
214+
return $accessToken->expires !== null;
215215
}
216216
}

src/Authentication/Traits/HasHmacTokens.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ public function setHmacToken(?AccessToken $accessToken): self
167167
*
168168
* @return bool Returns true if Access Token has expired, false if not
169169
*/
170-
public function hasHmacTokenExpired(?AccessToken $accessToken): bool
170+
public function hasHmacTokenExpired(AccessToken $accessToken): bool
171171
{
172172
return $accessToken->expires !== null && $accessToken->expires->isBefore(Time::now());
173173
}
@@ -201,6 +201,6 @@ public function setHmacTokenExpirationById(int $id, Time $expiresAt): bool
201201
*/
202202
public function canHmacTokenExpire(AccessToken $accessToken): bool
203203
{
204-
return isset($accessToken->expires);
204+
return $accessToken->expires !== null;
205205
}
206206
}

src/Commands/Hmac.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,4 +231,4 @@ static function ($identity) use ($uIdModelSub, $that): void {
231231
},
232232
);
233233
}
234-
}
234+
}

tests/Authentication/HasAccessTokensTest.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,11 @@ public function testTokenCanNoTokenSet(): void
141141

142142
public function testTokenCanBasics(): void
143143
{
144-
$token = $this->user->generateAccessToken('foo', ['foo:bar']);
144+
$token = $this->user->generateAccessToken('foo', ['foo.bar']);
145145
$this->user->setAccessToken($token);
146146

147-
$this->assertTrue($this->user->tokenCan('foo:bar'));
148-
$this->assertFalse($this->user->tokenCan('foo:baz'));
147+
$this->assertTrue($this->user->tokenCan('foo.bar'));
148+
$this->assertFalse($this->user->tokenCan('foo.baz'));
149149
}
150150

151151
public function testTokenCantNoTokenSet(): void
@@ -159,14 +159,14 @@ public function testTokenCantNoTokenSet(): void
159159
public function testGenerateTokenWithExpiration(): void
160160
{
161161
$tokenExpiration = Time::parse('2024-11-03 12:00:00');
162-
$token = $this->user->generateAccessToken('foo', ['foo:bar'], $tokenExpiration);
162+
$token = $this->user->generateAccessToken('foo', ['foo.bar'], $tokenExpiration);
163163
$this->user->setAccessToken($token);
164164

165165
$this->assertSame($tokenExpiration->format('Y-m-d h:i:s'), $this->user->currentAccessToken()->expires->format('Y-m-d h:i:s'));
166166

167167
$tokenExpiration = $tokenExpiration->addMonths(1);
168168
$tokenExpiration = $tokenExpiration->addYears(1);
169-
$token = $this->user->generateAccessToken('foo', ['foo:bar'], $tokenExpiration);
169+
$token = $this->user->generateAccessToken('foo', ['foo.bar'], $tokenExpiration);
170170
$this->user->setAccessToken($token);
171171

172172
$this->assertSame($tokenExpiration->format('Y-m-d h:i:s'), $this->user->currentAccessToken()->expires->format('Y-m-d h:i:s'));
@@ -177,7 +177,7 @@ public function testGenerateTokenWithExpiration(): void
177177
*/
178178
public function testSetTokenExpirationById(): void
179179
{
180-
$token = $this->user->generateAccessToken('foo', ['foo:bar']);
180+
$token = $this->user->generateAccessToken('foo', ['foo.bar']);
181181

182182
$this->user->setAccessToken($token);
183183

@@ -195,7 +195,7 @@ public function testSetTokenExpirationById(): void
195195
public function testIsTokenExpired(): void
196196
{
197197
$tokenExpiration = Time::parse('2024-11-03 12:00:00');
198-
$token = $this->user->generateAccessToken('foo', ['foo:bar'], $tokenExpiration);
198+
$token = $this->user->generateAccessToken('foo', ['foo.bar'], $tokenExpiration);
199199
$this->user->setAccessToken($token);
200200

201201
$this->assertTrue($this->user->hasAccessTokenExpired($this->user->currentAccessToken()));
@@ -209,7 +209,7 @@ public function testTokenTimeToExpired(): void
209209
$tokenExpiration = Time::now();
210210
$tokenExpiration = $tokenExpiration->addYears(1);
211211

212-
$token = $this->user->generateAccessToken('foo', ['foo:bar'], $tokenExpiration);
212+
$token = $this->user->generateAccessToken('foo', ['foo.bar'], $tokenExpiration);
213213
$this->user->setAccessToken($token);
214214

215215
$this->assertSame('in 1 year', $this->user->currentAccessToken()->expires->humanize());
@@ -223,11 +223,11 @@ public function testCanHmacTokenExpire(): void
223223
$tokenExpiration = Time::now();
224224
$tokenExpiration = $tokenExpiration->addYears(1);
225225

226-
$token = $this->user->generateAccessToken('foo', ['foo:bar'], $tokenExpiration);
226+
$token = $this->user->generateAccessToken('foo', ['foo.bar'], $tokenExpiration);
227227

228228
$this->assertTrue($this->user->canAccessTokenExpire($token));
229229

230-
$token = $this->user->generateAccessToken('foo', ['foo:bar']);
230+
$token = $this->user->generateAccessToken('foo', ['foo.bar']);
231231

232232
$this->assertFalse($this->user->canAccessTokenExpire($token));
233233
}

tests/Authentication/HasHmacTokensTest.php

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,11 @@ public function testHmacTokenCanNoTokenSet(): void
136136

137137
public function testHmacTokenCanBasics(): void
138138
{
139-
$token = $this->user->generateHmacToken('foo', ['foo:bar']);
139+
$token = $this->user->generateHmacToken('foo', ['foo.bar']);
140140
$this->user->setHmacToken($token);
141141

142-
$this->assertTrue($this->user->hmacTokenCan('foo:bar'));
143-
$this->assertFalse($this->user->hmacTokenCan('foo:baz'));
142+
$this->assertTrue($this->user->hmacTokenCan('foo.bar'));
143+
$this->assertFalse($this->user->hmacTokenCan('foo.baz'));
144144
}
145145

146146
public function testHmacTokenCantNoTokenSet(): void
@@ -150,11 +150,11 @@ public function testHmacTokenCantNoTokenSet(): void
150150

151151
public function testHmacTokenCant(): void
152152
{
153-
$token = $this->user->generateHmacToken('foo', ['foo:bar']);
153+
$token = $this->user->generateHmacToken('foo', ['foo.bar']);
154154
$this->user->setHmacToken($token);
155155

156-
$this->assertFalse($this->user->hmacTokenCant('foo:bar'));
157-
$this->assertTrue($this->user->hmacTokenCant('foo:baz'));
156+
$this->assertFalse($this->user->hmacTokenCant('foo.bar'));
157+
$this->assertTrue($this->user->hmacTokenCant('foo.baz'));
158158
}
159159

160160
/**
@@ -164,15 +164,15 @@ public function testGenerateTokenWithExpiration(): void
164164
{
165165
$tokenExpiration = Time::parse('2024-11-03 12:00:00');
166166

167-
$token = $this->user->generateHmacToken('foo', ['foo:bar'], $tokenExpiration);
167+
$token = $this->user->generateHmacToken('foo', ['foo.bar'], $tokenExpiration);
168168
$this->user->setHmacToken($token);
169169

170170
$this->assertSame($tokenExpiration->format('Y-m-d h:i:s'), $this->user->currentHmacToken()->expires->format('Y-m-d h:i:s'));
171171

172172
$tokenExpiration = $tokenExpiration->addMonths(1);
173173
$tokenExpiration = $tokenExpiration->addYears(1);
174174

175-
$token = $this->user->generateHmacToken('foo', ['foo:bar'], $tokenExpiration);
175+
$token = $this->user->generateHmacToken('foo', ['foo.bar'], $tokenExpiration);
176176
$this->user->setHmacToken($token);
177177

178178
$this->assertSame($tokenExpiration->format('Y-m-d h:i:s'), $this->user->currentHmacToken()->expires->format('Y-m-d h:i:s'));
@@ -183,7 +183,7 @@ public function testGenerateTokenWithExpiration(): void
183183
*/
184184
public function testSetTokenExpirationById(): void
185185
{
186-
$token = $this->user->generateHmacToken('foo', ['foo:bar']);
186+
$token = $this->user->generateHmacToken('foo', ['foo.bar']);
187187

188188
$this->user->setHmacToken($token);
189189

@@ -204,7 +204,7 @@ public function testIsHmacTokenExpired(): void
204204
{
205205
$tokenExpiration = Time::parse('2024-11-03 12:00:00');
206206

207-
$token = $this->user->generateHmacToken('foo', ['foo:bar'], $tokenExpiration);
207+
$token = $this->user->generateHmacToken('foo', ['foo.bar'], $tokenExpiration);
208208
$this->user->setHmacToken($token);
209209

210210
$this->assertTrue($this->user->hasHmacTokenExpired($token));
@@ -218,7 +218,7 @@ public function testHmacTokenTimeToExpired(): void
218218
$tokenExpiration = Time::now();
219219
$tokenExpiration = $tokenExpiration->addYears(1);
220220

221-
$token = $this->user->generateHmacToken('foo', ['foo:bar'], $tokenExpiration);
221+
$token = $this->user->generateHmacToken('foo', ['foo.bar'], $tokenExpiration);
222222

223223
$this->assertSame('in 1 year', $token->expires->humanize());
224224
}
@@ -231,11 +231,11 @@ public function testCanHmacTokenExpire(): void
231231
$tokenExpiration = Time::now();
232232
$tokenExpiration = $tokenExpiration->addYears(1);
233233

234-
$token = $this->user->generateHmacToken('foo', ['foo:bar'], $tokenExpiration);
234+
$token = $this->user->generateHmacToken('foo', ['foo.bar'], $tokenExpiration);
235235

236236
$this->assertTrue($this->user->canHmacTokenExpire($token));
237237

238-
$token = $this->user->generateHmacToken('foo', ['foo:bar']);
238+
$token = $this->user->generateHmacToken('foo', ['foo.bar']);
239239

240240
$this->assertFalse($this->user->canHmacTokenExpire($token));
241241
}

0 commit comments

Comments
 (0)