sessiones y cookies - Heavyblade/cirrus GitHub Wiki

Para guardar datos en una cookie a fin de mantener una session con un determinado cliente Cirrus.js te da la posibilidad de leer o escribir a dicha sessión desde tus controladores a traves de la función wApp.session.set(key, value):

	wApp.usersController = {
	createSession: function(params){
		// tu lógica para verificar que el usuario sea válido
		wApp.session.set("user_id", 10)
		return(algun_objeto_json);
	}}

En este codigo el valor del key "user_id" sera almacenado en una cookie en la cual podrás leer y escribir mientras dura la sessión del usuario.

Sessiones persistentes:

Si deseas que la session quede guardada por un cierto intervalo de tiempo en el navegador, puedes indicar un expire date para la sessión, el siguiente código le indica al navegador que guarde la sessión hasta el 21 de diciembre de 2012, fecha a partir de la cual el navegador dejara de enviarnos la sessión salvo que indiquemos una nueva fecha de expiración de la misma:

	wApp.usersController = {
	createSession: function(params){
		// Codigo dentro de un controlador
		var date = new Date(2014, 11, 31)  // valida hasta diciembre 31 de 2014
    	wApp.session.set("expires", date)
    }}

Especificar el Path:

En algunos casos se desea asociar la cookie con un path particular de la aplicación ("/pedidos", "/articulos/index", etc.), para ello puedes indicar a que path quieres que vaya asociada la cookie y el navegador solo la enviara cuando se hagan request a esa ruta en particular:

	wApp.usersController = {
	createSession: function(params){		
    	wApp.session.set("path", "/mi_path");
    }}

Leyendo la cookie:

Una vez hayas escrito variables de sessión atra vez de la cookie podrás acceder a estas a traves de la funcion wApp.session.get(key):

	wApp.usersController = {
		show: function(params) {
			var user_id = wApp.session.get("user_id")
			var current_user = VRegister.find("CAJA/USERS", user_id)
		}
	}