lib/doorkeeper/oauth/client_credentials/creator.rb in doorkeeper-5.2.6 vs lib/doorkeeper/oauth/client_credentials/creator.rb in doorkeeper-5.3.0
- old
+ new
@@ -3,27 +3,34 @@
module Doorkeeper
module OAuth
class ClientCredentialsRequest < BaseRequest
class Creator
def call(client, scopes, attributes = {})
- existing_token = existing_token_for(client, scopes)
+ if lookup_existing_token?
+ existing_token = find_existing_token_for(client, scopes)
+ return existing_token if server_config.reuse_access_token && existing_token&.reusable?
- if Doorkeeper.configuration.reuse_access_token && existing_token&.reusable?
- return existing_token
+ existing_token&.revoke if server_config.revoke_previous_client_credentials_token
end
- existing_token&.revoke
-
- AccessToken.find_or_create_for(
+ server_config.access_token_model.find_or_create_for(
client, nil, scopes, attributes[:expires_in],
- attributes[:use_refresh_token]
+ attributes[:use_refresh_token],
)
end
private
- def existing_token_for(client, scopes)
- Doorkeeper::AccessToken.matching_token_for client, nil, scopes
+ def lookup_existing_token?
+ server_config.reuse_access_token || server_config.revoke_previous_client_credentials_token
+ end
+
+ def find_existing_token_for(client, scopes)
+ server_config.access_token_model.matching_token_for(client, nil, scopes)
+ end
+
+ def server_config
+ Doorkeeper.config
end
end
end
end
end