File tree 3 files changed +49
-1
lines changed
3 files changed +49
-1
lines changed Original file line number Diff line number Diff line change 5
5
use DateTime ;
6
6
use Illuminate \Contracts \Events \Dispatcher ;
7
7
use Laravel \Passport \Events \AccessTokenCreated ;
8
+ use Laravel \Passport \Events \AccessTokenRevoked ;
8
9
use Laravel \Passport \Passport ;
9
10
use Laravel \Passport \TokenRepository ;
10
11
use League \OAuth2 \Server \Entities \AccessTokenEntityInterface ;
@@ -78,7 +79,9 @@ public function persistNewAccessToken(AccessTokenEntityInterface $accessTokenEnt
78
79
*/
79
80
public function revokeAccessToken ($ tokenId )
80
81
{
81
- $ this ->tokenRepository ->revokeAccessToken ($ tokenId );
82
+ if ($ this ->tokenRepository ->revokeAccessToken ($ tokenId )) {
83
+ $ this ->events ->dispatch (new AccessTokenRevoked ($ tokenId ));
84
+ }
82
85
}
83
86
84
87
/**
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Laravel \Passport \Events ;
4
+
5
+ class AccessTokenRevoked
6
+ {
7
+ /**
8
+ * Create a new event instance.
9
+ *
10
+ * @param string $tokenId
11
+ * @return void
12
+ */
13
+ public function __construct (
14
+ public string $ tokenId ,
15
+ ) {
16
+ }
17
+ }
Original file line number Diff line number Diff line change @@ -49,6 +49,34 @@ public function test_access_tokens_can_be_persisted()
49
49
$ repository ->persistNewAccessToken ($ accessToken );
50
50
}
51
51
52
+ public function test_access_tokens_can_be_revoked ()
53
+ {
54
+ $ tokenRepository = m::mock (TokenRepository::class);
55
+ $ events = m::mock (Dispatcher::class);
56
+
57
+ $ tokenRepository ->shouldReceive ('revokeAccessToken ' )->with ('token-id ' )->once ()->andReturn (1 );
58
+ $ events ->shouldReceive ('dispatch ' )->once ();
59
+
60
+ $ repository = new AccessTokenRepository ($ tokenRepository , $ events );
61
+ $ repository ->revokeAccessToken ('token-id ' );
62
+
63
+ $ this ->expectNotToPerformAssertions ();
64
+ }
65
+
66
+ public function test_access_token_revoke_event_is_not_dispatched_when_nothing_happened ()
67
+ {
68
+ $ tokenRepository = m::mock (TokenRepository::class);
69
+ $ events = m::mock (Dispatcher::class);
70
+
71
+ $ tokenRepository ->shouldReceive ('revokeAccessToken ' )->with ('token-id ' )->once ()->andReturn (0 );
72
+ $ events ->shouldNotReceive ('dispatch ' );
73
+
74
+ $ repository = new AccessTokenRepository ($ tokenRepository , $ events );
75
+ $ repository ->revokeAccessToken ('token-id ' );
76
+
77
+ $ this ->expectNotToPerformAssertions ();
78
+ }
79
+
52
80
public function test_can_get_new_access_token ()
53
81
{
54
82
$ tokenRepository = m::mock (TokenRepository::class);
You can’t perform that action at this time.
0 commit comments