Module: DoorkeeperMongodb::Mixins::Mongoid::AccessTokenMixin::ClassMethods
- Defined in:
- lib/doorkeeper-mongodb/mixins/mongoid/access_token_mixin.rb
Instance Method Summary collapse
-
#by_refresh_token(refresh_token) ⇒ Doorkeeper::AccessToken?
Returns an instance of the Doorkeeper::AccessToken with specific token value.
-
#by_token(token) ⇒ Doorkeeper::AccessToken?
Returns an instance of the Doorkeeper::AccessToken with specific token value.
-
#find_or_create_for(application, resource_owner_id, scopes, expires_in, use_refresh_token) ⇒ Doorkeeper::AccessToken
Looking for not expired AccessToken record with a matching set of scopes that belongs to specific Application and Resource Owner.
-
#last_authorized_token_for(application_id, resource_owner_id) ⇒ Doorkeeper::AccessToken?
Looking for not revoked Access Token record that belongs to specific Application and Resource Owner.
-
#matching_token_for(application, resource_owner_or_id, scopes) ⇒ Doorkeeper::AccessToken?
Looking for not expired Access Token with a matching set of scopes that belongs to specific Application and Resource Owner.
-
#revoke_all_for(application_id, resource_owner) ⇒ Object
Revokes AccessToken records that have not been revoked and associated with the specific Application and Resource Owner.
-
#scopes_match?(token_scopes, param_scopes, app_scopes) ⇒ Boolean
Checks whether the token scopes match the scopes from the parameters or Application scopes (if present).
Instance Method Details
#by_refresh_token(refresh_token) ⇒ Doorkeeper::AccessToken?
Returns an instance of the Doorkeeper::AccessToken with specific token value.
63 64 65 |
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_token_mixin.rb', line 63 def by_refresh_token(refresh_token) where(refresh_token: refresh_token.to_s).first end |
#by_token(token) ⇒ Doorkeeper::AccessToken?
Returns an instance of the Doorkeeper::AccessToken with specific token value.
49 50 51 |
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_token_mixin.rb', line 49 def by_token(token) where(token: token.to_s).first end |
#find_or_create_for(application, resource_owner_id, scopes, expires_in, use_refresh_token) ⇒ Doorkeeper::AccessToken
Looking for not expired AccessToken record with a matching set of scopes that belongs to specific Application and Resource Owner. If it doesn’t exists - then creates it.
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_token_mixin.rb', line 146 def find_or_create_for(application, resource_owner_id, scopes, expires_in, use_refresh_token) if Doorkeeper.configuration.reuse_access_token access_token = matching_token_for(application, resource_owner_id, scopes) if access_token && !access_token.expired? return access_token end end create!( application_id: application.try(:id), resource_owner_id: resource_owner_id, scopes: scopes.to_s, expires_in: expires_in, use_refresh_token: use_refresh_token ) end |
#last_authorized_token_for(application_id, resource_owner_id) ⇒ Doorkeeper::AccessToken?
Looking for not revoked Access Token record that belongs to specific Application and Resource Owner.
174 175 176 177 178 179 |
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_token_mixin.rb', line 174 def (application_id, resource_owner_id) send(order_method, created_at_desc). where(application_id: application_id, resource_owner_id: resource_owner_id, revoked_at: nil).first end |
#matching_token_for(application, resource_owner_or_id, scopes) ⇒ Doorkeeper::AccessToken?
Looking for not expired Access Token with a matching set of scopes that belongs to specific Application and Resource Owner.
95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_token_mixin.rb', line 95 def matching_token_for(application, resource_owner_or_id, scopes) resource_owner_id = if resource_owner_or_id.respond_to?(:to_key) resource_owner_or_id.id else resource_owner_or_id end token = (application.try(:id), resource_owner_id) if token && scopes_match?(token.scopes, scopes, application.try(:scopes)) token end end |
#revoke_all_for(application_id, resource_owner) ⇒ Object
Revokes AccessToken records that have not been revoked and associated with the specific Application and Resource Owner.
75 76 77 78 79 80 |
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_token_mixin.rb', line 75 def revoke_all_for(application_id, resource_owner) where(application_id: application_id, resource_owner_id: resource_owner.id, revoked_at: nil). each(&:revoke) end |
#scopes_match?(token_scopes, param_scopes, app_scopes) ⇒ Boolean
Checks whether the token scopes match the scopes from the parameters or Application scopes (if present).
120 121 122 123 124 125 126 127 |
# File 'lib/doorkeeper-mongodb/mixins/mongoid/access_token_mixin.rb', line 120 def scopes_match?(token_scopes, param_scopes, app_scopes) (!token_scopes.present? && !param_scopes.present?) || Doorkeeper::OAuth::Helpers::ScopeChecker.match?( token_scopes.to_s, param_scopes, app_scopes ) end |