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