Class: Google::Auth::Stores::RedisTokenStore

Inherits:
TokenStore
  • Object
show all
Defined in:
lib/googleauth/stores/redis_token_store.rb

Overview

Implementation of user token storage backed by Redis. Tokens are stored as JSON using the supplied key, prefixed with `g-user-token:`

Constant Summary collapse

DEFAULT_KEY_PREFIX =
'g-user-token:'.freeze

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ RedisTokenStore

Note:

If no redis instance is provided, a new one is created and the options passed through. You may include any other keys accepted by `Redis.new`

Create a new store with the supplied redis client.

Parameters:

  • redis (::Redis, String)

    Initialized redis client to connect to.

  • prefix (String)

    Prefix for keys in redis. Defaults to 'g-user-token:'


51
52
53
54
55
56
57
58
59
60
61
# File 'lib/googleauth/stores/redis_token_store.rb', line 51

def initialize(options = {})
  redis = options.delete(:redis)
  prefix = options.delete(:prefix)
  @redis = case redis
           when Redis
             redis
           else
             Redis.new(options)
           end
  @prefix = prefix || DEFAULT_KEY_PREFIX
end

Instance Method Details

#delete(id) ⇒ Object


76
77
78
79
# File 'lib/googleauth/stores/redis_token_store.rb', line 76

def delete(id)
  key = key_for(id)
  @redis.del(key)
end

#load(id) ⇒ Object


64
65
66
67
# File 'lib/googleauth/stores/redis_token_store.rb', line 64

def load(id)
  key = key_for(id)
  @redis.get(key)
end

#store(id, token) ⇒ Object


70
71
72
73
# File 'lib/googleauth/stores/redis_token_store.rb', line 70

def store(id, token)
  key = key_for(id)
  @redis.set(key, token)
end