class Warden::SharedSession::EncryptedCookie

Attributes

encryptor[R]
secret[R]
store[R]

Public Class Methods

new(store:, cookie:, secret:) click to toggle source
# File lib/warden/shared_session/encrypted_cookie.rb, line 5
def initialize(store:, cookie:, secret:)
  @store = store
  @cookie = cookie
  @secret = secret

  @encryptor ||= ActiveSupport::MessageEncryptor.new(secret)
end

Public Instance Methods

clear() click to toggle source
# File lib/warden/shared_session/encrypted_cookie.rb, line 24
def clear
  store.delete(cookie)
end
get() click to toggle source
# File lib/warden/shared_session/encrypted_cookie.rb, line 13
def get
  value = store[cookie]
  return nil unless value

  JSON(encryptor.decrypt_and_verify(value))
end
put(data) click to toggle source
# File lib/warden/shared_session/encrypted_cookie.rb, line 20
def put(data)
  store[cookie] = encryptor.encrypt_and_sign(data.to_json)
end