Module: DoorkeeperMongodb::Mixins::Mongoid::AccessGrantMixin::ClassMethods

Defined in:
lib/doorkeeper-mongodb/mixins/mongoid/access_grant_mixin.rb

Instance Method Summary collapse

Instance Method Details

#by_token(token) ⇒ Doorkeeper::AccessGrant?

Searches for Doorkeeper::AccessGrant record with the specific token value.

Parameters:

  • token (#to_s)

    token value (any object that responds to ‘#to_s`)

Returns:



71
72
73
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_grant_mixin.rb', line 71

def by_token(token)
  find_by_plaintext_token(:token, token)
end

#fallback_secret_strategyObject

Determine the fallback storing strategy Unless configured, there will be no fallback



146
147
148
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_grant_mixin.rb', line 146

def fallback_secret_strategy
  ::Doorkeeper.config.token_secret_fallback_strategy
end

#generate_code_challenge(code_verifier) ⇒ #to_s

Returns An encoded code challenge based on the provided verifier suitable for PKCE validation.

Parameters:

  • code_verifier (#to_s)

    a one time use value (any object that responds to ‘#to_s`)

Returns:

  • (#to_s)

    An encoded code challenge based on the provided verifier suitable for PKCE validation



127
128
129
130
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_grant_mixin.rb', line 127

def generate_code_challenge(code_verifier)
  padded_result = Base64.urlsafe_encode64(Digest::SHA256.digest(code_verifier))
  padded_result.split("=")[0] # Remove any trailing '='
end

#pkce_supported?Boolean

Returns:

  • (Boolean)


132
133
134
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_grant_mixin.rb', line 132

def pkce_supported?
  new.pkce_supported?
end

#revoke_all_for(application_id, resource_owner, clock = Time) ⇒ Object

Revokes AccessGrant records that have not been revoked and associated with the specific Application and Resource Owner.

Parameters:

  • application_id (Integer)

    ID of the Application

  • resource_owner (Mongoid::Document, Integer)

    instance of the Resource Owner model



83
84
85
86
87
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_grant_mixin.rb', line 83

def revoke_all_for(application_id, resource_owner, clock = Time)
  by_resource_owner(resource_owner)
    .where(application_id: application_id, revoked_at: nil)
    .update_all(revoked_at: clock.now.utc)
end

#secret_strategyObject

Determines the secret storing transformer Unless configured otherwise, uses the plain secret strategy



139
140
141
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_grant_mixin.rb', line 139

def secret_strategy
  ::Doorkeeper.config.token_secret_strategy
end