class Nyauth::SessionSerializer

Public Class Methods

new(env) click to toggle source
# File lib/nyauth/session_serializer.rb, line 3
def initialize(env)
  @env = env
end

Public Instance Methods

delete(scope) click to toggle source
# File lib/nyauth/session_serializer.rb, line 39
def delete(scope)
  session.delete(key_for(scope))
end
deserialize(key) click to toggle source
# File lib/nyauth/session_serializer.rb, line 15
def deserialize(key)
  klass_name, client_id = Nyauth::Encryptor.decrypt(key).split(':')
  klass_name.constantize.find_by(id: client_id)
end
fetch(scope) click to toggle source
# File lib/nyauth/session_serializer.rb, line 26
def fetch(scope)
  key = session[key_for(scope)]
  return nil unless key

  client = deserialize(key)
  delete(scope) unless client
  client
end
key_for(scope) click to toggle source
# File lib/nyauth/session_serializer.rb, line 7
def key_for(scope)
  "nyauth.#{scope}.session"
end
serialize(client) click to toggle source
# File lib/nyauth/session_serializer.rb, line 11
def serialize(client)
  Nyauth::Encryptor.encrypt("#{client.class.name}:#{client.id}")
end
session() click to toggle source
# File lib/nyauth/session_serializer.rb, line 43
def session
  @env['rack.session'] || {}
end
store(client, scope) click to toggle source
# File lib/nyauth/session_serializer.rb, line 20
def store(client, scope)
  return unless client

  session[key_for(scope)] = serialize(client)
end
stored?(scope) click to toggle source
# File lib/nyauth/session_serializer.rb, line 35
def stored?(scope)
  !!session[key_for(scope)]
end