class Warden::CookieSession::EncryptedCookie
Attributes
encryptor[R]
secret[R]
store[R]
Public Class Methods
new(store:, cookie:, secret:)
click to toggle source
# File lib/warden/cookie_session/encrypted_cookie.rb, line 5 def initialize(store:, cookie:, secret:) @store = store @cookie = cookie @secret = secret raise ArgumentError.new('secret must be 32 bytes') if @secret.length != 32 @encryptor ||= ActiveSupport::MessageEncryptor.new(secret) end
Public Instance Methods
clear(domain)
click to toggle source
# File lib/warden/cookie_session/encrypted_cookie.rb, line 31 def clear(domain) store.delete(cookie, domain: domain) end
get()
click to toggle source
# File lib/warden/cookie_session/encrypted_cookie.rb, line 14 def get value = store[cookie] return nil unless value JSON(encryptor.decrypt_and_verify(value)) end
put(data, domain)
click to toggle source
# File lib/warden/cookie_session/encrypted_cookie.rb, line 21 def put(data, domain) store[cookie] = { value: encryptor.encrypt_and_sign(data.to_json), domain: domain, secure: true, http_only: true, httponly: true } end