class Authie::RackController

Attributes

request[R]

Public Class Methods

new(env) click to toggle source
# File lib/authie/rack_controller.rb, line 16
def initialize(env)
  @env = env
  @request = ActionDispatch::Request.new(@env)
  set_browser_id
end

Public Instance Methods

auth_session() click to toggle source
# File lib/authie/rack_controller.rb, line 44
def auth_session
  @auth_session ||= Session.get_session(self)
end
cookies() click to toggle source
# File lib/authie/rack_controller.rb, line 22
def cookies
  @request.cookie_jar
end
current_user() click to toggle source
# File lib/authie/rack_controller.rb, line 40
def current_user
  auth_session.user if auth_session.is_a?(Session)
end
current_user=(user) click to toggle source
# File lib/authie/rack_controller.rb, line 36
def current_user=(user)
  Session.start(self, user: user)
end
set_browser_id() click to toggle source

Set a random browser ID for this browser.

# File lib/authie/rack_controller.rb, line 27
def set_browser_id
  until cookies[:browser_id]
    proposed_browser_id = SecureRandom.uuid
    unless Session.where(browser_id: proposed_browser_id).exists?
      cookies[:browser_id] = { value: proposed_browser_id, expires: 20.years.from_now }
    end
  end
end