Commit 91daafc6 authored by Sam Saffron's avatar Sam Saffron

DEV: correct implementation of expiry api

Previously we were always hard-coding expiry, this allows the secure session
to correctly handle custom expiry times

Also adds a ttl method for looking up time to live
parent bf0ef732
......@@ -16,10 +16,14 @@ class SecureSession
def set(key, val, expires: nil)
expires ||= SecureSession.expiry
$redis.setex(prefixed_key(key), SecureSession.expiry.to_i, val.to_s)
$redis.setex(prefixed_key(key), expires.to_i, val.to_s)
true
end
def ttl(key)
$redis.ttl(prefixed_key(key))
end
def [](key)
$redis.get(prefixed_key(key))
end
......
......@@ -14,4 +14,16 @@ describe SecureSession do
s["hello"] = nil
expect(s["hello"]).to eq(nil)
end
it "can override expiry" do
s = SecureSession.new("abc")
key = SecureRandom.hex
s.set(key, "test2", expires: 5.minutes)
expect(s.ttl(key)).to be_within(1.second).of (5.minutes)
key = SecureRandom.hex
s.set(key, "test2")
expect(s.ttl(key)).to be_within(1.second).of (SecureSession.expiry)
end
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment