[13.x] Improve performance, fix minor bugs, and add tests #1783
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR does:
Arrayable
,Jsonable
, andJsonSerializable
interfaces on theAccessToken
class and fix some minor issues.ResolvesInheritedScopes
trait by introducing a newscopeExists
method, used in both theAccessToken
andClient
classes.ClientRepository
class a singleton and leverages the new Laravel 11once
function, avoids duplicate queries to retrieve the same client. For example, when issuing a token using the auth code grant, this change reduces the number of queries executed by three:select * from "oauth_clients" where "id" = '9cda...' limit 1
select * from "oauth_clients" where "id" = '9cda...' limit 1
select * from "oauth_clients" where "id" = '9cda...' limit 1
select exists(select * from "oauth_auth_codes" where "id" = '0ab0...' and "revoked" = 0) as "exists"
select * from "oauth_clients" where "id" = '9cda...' limit 1
insert into "oauth_access_tokens" ("id", "user_id", "client_id", "scopes", "revoked", "created_at", "updated_at", "expires_at") values ('36ef...', '1', '9cda...', '["create","read"]', 0, '2024-08-26 02:03:54', '2024-08-26 02:03:54', '2025-08-26 02:03:54')
insert into "oauth_refresh_tokens" ("id", "access_token_id", "revoked", "expires_at") values ('0ed5...', 0, '2025-08-26 02:03:54')
update "oauth_auth_codes" set "revoked" = 1 where "id" = '0ab0...'
select * from "oauth_clients" where "id" = '9cda...' limit 1
select exists(select * from "oauth_auth_codes" where "id" = '0ab0...' and "revoked" = 0) as "exists"
insert into "oauth_access_tokens" ("id", "user_id", "client_id", "scopes", "revoked", "created_at", "updated_at", "expires_at") values ('36ef...', '1', '9cda...', '["create","read"]', 0, '2024-08-26 02:03:54', '2024-08-26 02:03:54', '2025-08-26 02:03:54')
insert into "oauth_refresh_tokens" ("id", "access_token_id", "revoked", "expires_at") values ('0ed5...', 0, '2025-08-26 02:03:54')
update "oauth_auth_codes" set "revoked" = 1 where "id" = '0ab0...'