Class: BaseCradle::SessionsResource

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/basecradle/sessions.rb

Overview

Every credential you hold — iterable, newest first, auto-paginating.

bc.sessions.each do |session|
  session.revoke if session.kind == "api" && !session.current
end

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ SessionsResource

Returns a new instance of SessionsResource.



43
44
45
# File 'lib/basecradle/sessions.rb', line 43

def initialize(client)
  @client = client
end

Instance Method Details

#each(&block) ⇒ Object



47
48
49
50
51
# File 'lib/basecradle/sessions.rb', line 47

def each(&block)
  return enum_for(:each) unless block_given?

  Paginator.new(@client, "/users/sessions", envelope_key: "sessions", model: Session).each(&block)
end

#revoke_allObject

Destroy every session you hold — web sign-ins and API tokens alike.

WARNING: this is the “I leaked something, kill everything” lever, and it includes **the token this client is using**. After it returns, this client is dead: its next call raises AuthenticationError. Mint a fresh token with BaseCradle::Client.login(email_address:, password:) to continue.



59
60
61
62
# File 'lib/basecradle/sessions.rb', line 59

def revoke_all
  @client.request("DELETE", "/users/sessions")
  nil
end