Skip to content

Commit f71e860

Browse files
author
Luca Degasperi
committed
Prototype implementation
1 parent c22d74c commit f71e860

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

src/LucaDegasperi/OAuth2Server/Commands/ExpiredTokensCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public function fire()
4646
$value = $this->option('delete');
4747
if ($value === true) {
4848
$result = $this->deleteExpiredTokens();
49-
$this->info('Expired OAuth tokens were deleted');
49+
$this->info($result . ' expired OAuth tokens were deleted');
5050
}
5151
else {
5252
$this->info('use the --delete option to trigger the delete of the expired tokens');

src/LucaDegasperi/OAuth2Server/Repositories/FluentSession.php

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,10 +181,24 @@ public function deleteExpired()
181181
$time = time();
182182
$expiredSessions = DB::table('oauth_sessions')
183183
->join('oauth_session_access_tokens', 'oauth_session_access_tokens.session_id', '=', 'oauth_sessions.id')
184-
->join('oauth_session_refresh_tokens', 'oauth_session_refresh_tokens.session_access_token_id', '=', 'oauth_session_access_tokens.id')
185-
//->where('oauth_session_refresh_tokens.refresh_token_expires', '<', $time)
186-
//->where('oauth_session_access_tokens.access_token_expires', '<', $time)
184+
->leftJoin('oauth_session_refresh_tokens', 'oauth_session_refresh_tokens.session_access_token_id', '=', 'oauth_session_access_tokens.id')
185+
->where('oauth_session_refresh_tokens.refresh_token_expires', '<', $time)
186+
->where(function ($query) use ($time) {
187+
$query->where('oauth_session_access_tokens.access_token_expires', '<', $time)
188+
->orWhereRaw('oauth_session_access_tokens.access_token_expires IS NULL');
189+
})
187190
->get();
188-
var_dump($expiredSessions);
191+
if (count($expiredSessions) == 0) {
192+
return 0;
193+
}
194+
else {
195+
foreach ($expiredSessions as $session) {
196+
DB::table('oauth_sessions')
197+
->where('id', '=', $session->id)
198+
->delete();
199+
}
200+
201+
return count($expiredSessions);
202+
}
189203
}
190204
}

0 commit comments

Comments
 (0)