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
This commit is contained in:
parent
bf0ef73286
commit
91daafc674
|
@ -16,10 +16,14 @@ class SecureSession
|
||||||
|
|
||||||
def set(key, val, expires: nil)
|
def set(key, val, expires: nil)
|
||||||
expires ||= SecureSession.expiry
|
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
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def ttl(key)
|
||||||
|
$redis.ttl(prefixed_key(key))
|
||||||
|
end
|
||||||
|
|
||||||
def [](key)
|
def [](key)
|
||||||
$redis.get(prefixed_key(key))
|
$redis.get(prefixed_key(key))
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,4 +14,16 @@ describe SecureSession do
|
||||||
s["hello"] = nil
|
s["hello"] = nil
|
||||||
expect(s["hello"]).to eq(nil)
|
expect(s["hello"]).to eq(nil)
|
||||||
end
|
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
|
end
|
||||||
|
|
Loading…
Reference in New Issue