class Kingfisher::CSRF

Attributes

request[R]

Public Class Methods

new(request) click to toggle source
# File lib/kingfisher/csrf.rb, line 3
def initialize(request)
  @request = request
end

Public Instance Methods

form_input() click to toggle source
# File lib/kingfisher/csrf.rb, line 26
def form_input
  %Q(<input type="hidden" name="csrf_token" value="#{token}">)
end
meta_tag() click to toggle source
# File lib/kingfisher/csrf.rb, line 30
def meta_tag
  %Q(<meta name="csrf_token" content="#{token}">)
end
reset!() click to toggle source
# File lib/kingfisher/csrf.rb, line 11
def reset!
  session.delete(:csrf_token)
end
safe?() click to toggle source
# File lib/kingfisher/csrf.rb, line 15
def safe?
  return true if request.get? || request.head?
  return true if request[:csrf_token] == token

  request.env["HTTP_X_CSRF_TOKEN"] == token
end
session() click to toggle source
# File lib/kingfisher/csrf.rb, line 34
def session
  request.env["rack.session"]
end
token() click to toggle source
# File lib/kingfisher/csrf.rb, line 7
def token
  session[:csrf_token] ||= SecureRandom.base64(32)
end
unsafe?() click to toggle source
# File lib/kingfisher/csrf.rb, line 22
def unsafe?
  !safe?
end