Cookies are simple, small files/data that are sent to client with a server request and stored on the client side. Every time the user loads the website back, this cookie is sent with the request. This helps us keep track of the users actions. There are numerous uses of HTTP Cookies.
The browser also sends back cookies every time is queries the server. To view a cookie on your server, on the server console in a route, add the following code to that route:
- Session management
- Personalization(Recommendation systems)
- User tracking
var koa = require('koa'); var router = require('koa-router'); var app = koa(); _.get('/', setACookie); function *setACookie(){ this.cookie.set('foo', 'bar', {httpOnly: false}); } var _ = router(); app.use(_.routes()); app.listen(3000);To check if your cookie is set or not, just go to your browser, fire up the console, and enter:
console.log(document.cookie);You will get the output like(you may have more cookies set maybe due to extensions in your browser):
"foo=bar"Here is an example of the above:
The browser also sends back cookies every time is queries the server. To view a cookie on your server, on the server console in a route, add the following code to that route:
console.log('Cookies: foo = ', this.cookies.get('foo'));Next time you send a request to this route, you'll get the ouput:
Cookies: foo = bar
Adding cookies with expiration time
You can add cookies that expire. To add a cookie that expires, just pass an object with property 'expires' set to the time when you want it to expire. For example,var koa = require('koa'); var router = require('koa-router'); var app = koa(); _.get('/', setACookie); function *setACookie(){ //Expires after 360000 ms from the time it is set. this.cookies.set('name', 'value', { httpOnly: false, expires: 360000 + Date.now() }); } var _ = router(); app.use(_.routes()); app.listen(3000);
Deleting existing cookies
To unset a cookie, simply set the cookie to an empty string. For example, if you need to clear a cookie named foo, use the following code:var koa = require('koa'); var router = require('koa-router'); var app = koa(); _.get('/', setACookie); function *setACookie(){ //Expires after 360000 ms from the time it is set. this.cookies.set('name', ''); } var _ = router(); app.use(_.routes()); app.listen(3000);This will unset the said cookie. Note that you should leave the HttpOnly option be true when not using the cookie in client side code.
No comments:
Post a Comment