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