Class: ActionController::RequestForgeryProtection::CookieStore
- Defined in:
- actionpack/lib/action_controller/metal/request_forgery_protection.rb
Instance Method Summary collapse
- #fetch(request) ⇒ Object
-
#initialize(cookie = :csrf_token) ⇒ CookieStore
constructor
A new instance of CookieStore.
- #reset(request) ⇒ Object
- #store(request, csrf_token) ⇒ Object
Constructor Details
#initialize(cookie = :csrf_token) ⇒ CookieStore
Returns a new instance of CookieStore.
447 448 449 |
# File 'actionpack/lib/action_controller/metal/request_forgery_protection.rb', line 447 def initialize( = :csrf_token) = end |
Instance Method Details
#fetch(request) ⇒ Object
451 452 453 454 455 456 457 458 459 460 461 |
# File 'actionpack/lib/action_controller/metal/request_forgery_protection.rb', line 451 def fetch(request) contents = request..encrypted[] return nil if contents.nil? value = JSON.parse(contents) return nil unless value.dig("session_id", "public_id") == request.session.id_was&.public_id value["token"] rescue JSON::ParserError nil end |
#reset(request) ⇒ Object
474 475 476 |
# File 'actionpack/lib/action_controller/metal/request_forgery_protection.rb', line 474 def reset(request) request..delete() end |
#store(request, csrf_token) ⇒ Object
463 464 465 466 467 468 469 470 471 472 |
# File 'actionpack/lib/action_controller/metal/request_forgery_protection.rb', line 463 def store(request, csrf_token) request..encrypted.permanent[] = { value: { token: csrf_token, session_id: request.session.id, }.to_json, httponly: true, same_site: :lax, } end |