module Grape::OAuth2::Mongoid::AccessToken

Grape::OAuth2 Access Token role mixin for Mongoid ORM. Includes all the required API, associations, validations and callbacks.

Public Class Methods

authenticate(token, type: :access_token) click to toggle source
# File lib/grape_oauth2/mixins/mongoid/access_token.rb, line 43
def authenticate(token, type: :access_token)
  if type && type.to_sym == :refresh_token
    find_by(refresh_token: token.to_s)
  else
    find_by(token: token.to_s)
  end
end
create_for(client, resource_owner, scopes = nil) click to toggle source
# File lib/grape_oauth2/mixins/mongoid/access_token.rb, line 35
def create_for(client, resource_owner, scopes = nil)
  create(
    client: client,
    resource_owner: resource_owner,
    scopes: scopes.to_s
  )
end

Public Instance Methods

expired?() click to toggle source
# File lib/grape_oauth2/mixins/mongoid/access_token.rb, line 52
def expired?
  !expires_at.nil? && Time.now.utc > expires_at
end
generate_tokens() click to toggle source
# File lib/grape_oauth2/mixins/mongoid/access_token.rb, line 75
def generate_tokens
  self.token = Grape::OAuth2.config.token_generator.generate(attributes) if token.blank?
  self.refresh_token = Grape::OAuth2::UniqueToken.generate if Grape::OAuth2.config.issue_refresh_token
end
revoke!(revoked_at = Time.now) click to toggle source
# File lib/grape_oauth2/mixins/mongoid/access_token.rb, line 60
def revoke!(revoked_at = Time.now)
  update_attribute :revoked_at, revoked_at.utc
end
revoked?() click to toggle source
# File lib/grape_oauth2/mixins/mongoid/access_token.rb, line 56
def revoked?
  !revoked_at.nil? && revoked_at <= Time.now.utc
end
setup_expiration() click to toggle source
# File lib/grape_oauth2/mixins/mongoid/access_token.rb, line 80
def setup_expiration
  expires_in = Grape::OAuth2.config.access_token_lifetime
  self.expires_at = Time.now + expires_in if expires_at.nil? && !expires_in.nil?
end
to_bearer_token() click to toggle source
# File lib/grape_oauth2/mixins/mongoid/access_token.rb, line 64
def to_bearer_token
  {
    access_token: token,
    expires_in: expires_at && Grape::OAuth2.config.access_token_lifetime.to_i,
    refresh_token: refresh_token,
    scope: scopes
  }
end