Ho bisogno di utilizzare un'applicazione a pagina singola (React, Ember, Angular, non mi interessa) con il meccanismo di protezione CSRF di Rails.
Mi chiedo se devo creare un token evey time nel ApplicationController
come questo:
class ApplicationController < ActionController::Base
after_action :set_csrf_cookie
def set_csrf_cookie
cookies["X-CSRF-Token"] = form_authenticity_token
end
end
o posso semplicemente creare un token una volta .
Per sessione o per richiesta (non GET)?
Penso che il token sia ancora valido fino a quando la sessione è valida, giusto?
CHIARIRE :
Vedo che l'applicazione predefinita di Rails (pagine renderizzate dal server) aggiorna csrf-token ogni volta che navigo su una pagina. Quindi ogni volta cambia.
Quindi, nella mia situazione, se creo un nuovo token per ogni after_action
, il precedente CSRF-Token è ancora valido per quella sessione. Quindi, come invalidare il token precedente? Devo?
Perché solo se ho invalidato ha senso, vero?