Skip to content

Commit a2779ee

Browse files
committed
Adiciona o comando PurgeCommand e resolve modelo RefreshToken
1 parent 5787083 commit a2779ee

File tree

4 files changed

+49
-2
lines changed

4 files changed

+49
-2
lines changed

src/Console/PurgeCommand.php

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
3+
namespace Sysvale\Mongodb\Console;
4+
5+
use Illuminate\Support\Carbon;
6+
use Laravel\Passport\Console\PurgeCommand as PassportPurgeCommand;
7+
use Laravel\Passport\Passport;
8+
9+
class PurgeCommand extends PassportPurgeCommand
10+
{
11+
public function handle()
12+
{
13+
$expired = Carbon::now()->subDays(7);
14+
15+
if (($this->option('revoked') && $this->option('expired')) ||
16+
(!$this->option('revoked') && !$this->option('expired'))
17+
) {
18+
Passport::token()->where('revoked', true)->orWhere('expires_at', '<', $expired)->delete();
19+
Passport::authCode()->where('revoked', true)->orWhere('expires_at', '<', $expired)->delete();
20+
Passport::refreshToken()->where('revoked', true)->orWhere('expires_at', '<', $expired)->delete();
21+
22+
$this->info('Purged revoked items and items expired for more than seven days.');
23+
} elseif ($this->option('revoked')) {
24+
Passport::token()->where('revoked', true)->delete();
25+
Passport::authCode()->where('revoked', true)->delete();
26+
Passport::refreshToken()->where('revoked', true)->delete();
27+
28+
$this->info('Purged revoked items.');
29+
} elseif ($this->option('expired')) {
30+
Passport::token()->where('expires_at', '<', $expired)->delete();
31+
Passport::authCode()->where('expires_at', '<', $expired)->delete();
32+
Passport::refreshToken()->where('expires_at', '<', $expired)->delete();
33+
34+
$this->info('Purged items expired for more than seven days.');
35+
}
36+
}
37+
}

src/MongodbPassportServiceProvider.php

+8
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,11 @@
1111
use Sysvale\Mongodb\Passport\Token;
1212
use Laravel\Passport\Bridge\RefreshTokenRepository as PassportRefreshTokenRepository;
1313
use Laravel\Passport\Console\ClientCommand as PassportClientCommand;
14+
use Laravel\Passport\Console\PurgeCommand as PassportPurgeCommand;
1415
use Laravel\Passport\Passport;
1516
use Laravel\Passport\TokenRepository as PassportTokenRepository;
17+
use Sysvale\Mongodb\Console\PurgeCommand;
18+
use Sysvale\Mongodb\Passport\RefreshToken;
1619
use Sysvale\Mongodb\Passport\TokenRepository;
1720

1821
class MongodbPassportServiceProvider extends ServiceProvider
@@ -26,6 +29,7 @@ public function register()
2629
Passport::useClientModel(Client::class);
2730
Passport::usePersonalAccessClientModel(PersonalAccessClient::class);
2831
Passport::useTokenModel(Token::class);
32+
Passport::useRefreshTokenModel(RefreshToken::class);
2933

3034
$this->app->bind(PassportRefreshTokenRepository::class, function () {
3135
return $this->app->make(RefreshTokenRepository::class);
@@ -35,6 +39,10 @@ public function register()
3539
return new ClientCommand();
3640
});
3741

42+
$this->app->extend(PassportPurgeCommand::class, function () {
43+
return new PurgeCommand();
44+
});
45+
3846
$this->app->bind(PassportTokenRepository::class, function () {
3947
return $this->app->make(TokenRepository::class);
4048
});

src/Passport/Bridge/RefreshTokenRepository.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Laravel\Passport\Bridge\RefreshTokenRepository as BaseRefreshTokenRepository;
66
use Laravel\Passport\Events\RefreshTokenCreated;
7+
use Laravel\Passport\Passport;
78
use League\OAuth2\Server\Entities\RefreshTokenEntityInterface;
89

910
/**
@@ -17,7 +18,7 @@ class RefreshTokenRepository extends BaseRefreshTokenRepository
1718
*/
1819
public function getNewRefreshToken()
1920
{
20-
return new RefreshToken();
21+
return Passport::refreshToken();
2122
}
2223

2324
/**

src/Passport/RefreshToken.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
namespace Sysvale\Mongodb\Passport;
44

55
use Jenssegers\Mongodb\Eloquent\Model;
6+
use Sysvale\Mongodb\Passport\Bridge\RefreshToken as BridgeRefreshToken;
67

7-
class RefreshToken extends Model
8+
class RefreshToken extends BridgeRefreshToken
89
{
910
/**
1011
* The database table used by the model.

0 commit comments

Comments
 (0)