Categories
Rails

Ruby On Rails: cookies

cookies[:remember_token] = { :value => user.id, :expires => 20.years.from_now.utc }

A “remember token” cookie is created, you can also do the 20 years part as:

cookies.permanent[:remember_token] = user.remember_token

cookies.permanent.signed[:remember_token] = [user.id, user.salt]

Obscures the real user.id with the salt, for security purposes

Retrieving stuff from cookies:

User.find_by_remember_token(cookies[:remember_token]) // This will query for a user with remember_token

Categories
JavaScript

JavaScript cookies

Easy code to produce a cookie:

document.cookie = “myTextBox=”+ escape(myBox.value) + getExpirationString();
//return a string like “;expires=Thu, 5 Jan 2006 16:07:52 UTC”
function getExpirationString() {
var exp = new Date();
var threemonths = exp.getTime()+(120*24*60*60*1000);
exp.setTime(threemonths);
return “;expires=”+exp.toGMTString();
}

Code to read cookie data:

var cookieData = document.cookie;
var cLen = cookieData.length;
var i = 0;
var cEnd;
while (i < cLen) {
var j = i + labelLen;
if (cookieData.substring(i,j) == labelName) {
cEnd = cookieData.indexOf(“;”,j);
if (cEnd == -1) {
cEnd = cookieData.length;
}
return unescape(cookieData.substring(j+1, cEnd));
}
i++;
}
return “”;
}

To directly modify it on the browser (not recommended, but useful as a crutch):

javascript:document.cookie=”myCookieName=myCookieValue”