module Doorkeeper::Models::Revocable

Public Instance Methods

revoke(clock = Time) click to toggle source

Revokes the object (updates `:revoked_at` attribute setting its value to the specific time).

@param clock [Time] time object

# File lib/doorkeeper/models/concerns/revocable.rb, line 9
def revoke(clock = Time)
  update_attribute :revoked_at, clock.now.utc
end
revoke_previous_refresh_token!() click to toggle source

Revokes token with `:refresh_token` equal to `:previous_refresh_token` and clears `:previous_refresh_token` attribute.

# File lib/doorkeeper/models/concerns/revocable.rb, line 24
def revoke_previous_refresh_token!
  return unless refresh_token_revoked_on_use?
  old_refresh_token.revoke if old_refresh_token
  update_attribute :previous_refresh_token, ""
end
revoked?() click to toggle source

Indicates whether the object has been revoked.

@return [Boolean] true if revoked, false in other case

# File lib/doorkeeper/models/concerns/revocable.rb, line 17
def revoked?
  !!(revoked_at && revoked_at <= Time.now.utc)
end

Private Instance Methods

old_refresh_token() click to toggle source

Searches for Access Token record with `:refresh_token` equal to `:previous_refresh_token` value.

@return [Doorkeeper::AccessToken, nil]

Access Token record or nil if nothing found
# File lib/doorkeeper/models/concerns/revocable.rb, line 38
def old_refresh_token
  @old_refresh_token ||=
    AccessToken.by_refresh_token(previous_refresh_token)
end
refresh_token_revoked_on_use?() click to toggle source
# File lib/doorkeeper/models/concerns/revocable.rb, line 43
def refresh_token_revoked_on_use?
  AccessToken.refresh_token_revoked_on_use?
end