Necesito usar una aplicación de una sola página (React, Ember, Angular, no me importa) con el mecanismo de protección Rails CSRF.
Me pregunto si debo crear un token cada vez en el ApplicationController
de esta manera:
class ApplicationController < ActionController::Base
after_action :set_csrf_cookie
def set_csrf_cookie
cookies["X-CSRF-Token"] = form_authenticity_token
end
end
o simplemente puedo crear un token una vez .
¿Por sesión o por solicitud (no GET)?
Creo que el token sigue siendo válido hasta que la sesión sea válida, ¿no?
ACLARAR :
Veo que la aplicación predeterminada de Rails (páginas representadas por el servidor) actualiza el token csrf cada vez que navego por una página. Así que cada vez que cambia.
En mi situación, si creo un token nuevo para cada after_action
, el token CSRF anterior todavía es bueno para esa sesión. Entonces, ¿cómo invalidar el token anterior? Tengo que?
Porque solo si lo invalido tiene sentido, ¿no?