File tree Expand file tree Collapse file tree 3 files changed +49
-1
lines changed Expand file tree Collapse file tree 3 files changed +49
-1
lines changed Original file line number Diff line number Diff line change 55use DateTime ;
66use Illuminate \Contracts \Events \Dispatcher ;
77use Laravel \Passport \Events \AccessTokenCreated ;
8+ use Laravel \Passport \Events \AccessTokenRevoked ;
89use Laravel \Passport \Passport ;
910use Laravel \Passport \TokenRepository ;
1011use League \OAuth2 \Server \Entities \AccessTokenEntityInterface ;
@@ -78,7 +79,9 @@ public function persistNewAccessToken(AccessTokenEntityInterface $accessTokenEnt
7879 */
7980 public function revokeAccessToken ($ tokenId )
8081 {
81- $ this ->tokenRepository ->revokeAccessToken ($ tokenId );
82+ if ($ this ->tokenRepository ->revokeAccessToken ($ tokenId )) {
83+ $ this ->events ->dispatch (new AccessTokenRevoked ($ tokenId ));
84+ }
8285 }
8386
8487 /**
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()
4949 $ repository ->persistNewAccessToken ($ accessToken );
5050 }
5151
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+
5280 public function test_can_get_new_access_token ()
5381 {
5482 $ tokenRepository = m::mock (TokenRepository::class);
You can’t perform that action at this time.
0 commit comments