class OmniAuth::RedisStore

Constants

OMNIAUTH_REDIS_KEY
REDIS_EXPIRE_TIME

Attributes

env[R]

Public Class Methods

new(env) click to toggle source
# File lib/omniauth/redis_store.rb, line 15
def initialize(env)
  @env = env
end

Public Instance Methods

[](key) click to toggle source
# File lib/omniauth/redis_store.rb, line 24
def [] (key)
  JSON.parse(redis.hget(session_id,key))
rescue TypeError
  {}
end
[]=(key,value) click to toggle source
# File lib/omniauth/redis_store.rb, line 19
def []= (key,value)
  redis.hset(session_id, key, value.to_json)
  redis.expire(session_id, REDIS_EXPIRE_TIME)
end
delete(key) click to toggle source
# File lib/omniauth/redis_store.rb, line 30
def delete (key)
  val = [key]
  redis.hdel(session_id, key)
  session.delete(OMNIAUTH_REDIS_KEY) unless redis.exists(session_id)
  val
end

Protected Instance Methods

redis() click to toggle source
# File lib/omniauth/redis_store.rb, line 39
def redis
  OmniAuth.config.redis
end
session() click to toggle source
# File lib/omniauth/redis_store.rb, line 43
def session
  @env['rack.session']
end
session_id() click to toggle source
# File lib/omniauth/redis_store.rb, line 47
def session_id
  session[OMNIAUTH_REDIS_KEY] = SecureRandom.uuid if session[OMNIAUTH_REDIS_KEY].nil?
  session[OMNIAUTH_REDIS_KEY]
end