@@ -97,48 +97,35 @@ If your Koa or Express server is properly configured, the `protocol` property of
9797
9898## Example
9999
100- ``` javascript
101- var http = require ( " http" )
102- var Cookies = require ( " cookies" )
103-
104- server = http .createServer ( function ( req , res ) {
105- var cookies = new Cookies ( req, res, { " keys" : keys } )
106- , unsigned, signed, tampered
107-
108- if ( req .url == " /set" ) {
109- cookies
110- // set a regular cookie
111- .set ( " unsigned" , " foo" , { httpOnly: false } )
112-
113- // set a signed cookie
114- .set ( " signed" , " bar" , { signed: true } )
115-
116- // mimic a signed cookie, but with a bogus signature
117- .set ( " tampered" , " baz" )
118- .set ( " tampered.sig" , " bogus" )
119-
120- res .writeHead ( 302 , { " Location" : " /" } )
121- return res .end ( " Now let's check." )
100+ ``` js
101+ var http = require (' http' )
102+ var Cookies = require (' cookies' )
103+
104+ // Optionally define keys to sign cookie values
105+ // to prevent client tampering
106+ var keys = [' keyboard cat' ]
107+
108+ var server = http .createServer (function (req , res ) {
109+ // Create a cookies object
110+ var cookies = new Cookies (req, res, { keys: keys })
111+
112+ // Get a cookie
113+ var lastVisit = cookies .get (' LastVisit' , { signed: true })
114+
115+ // Set the cookie to a value
116+ cookies .set (' LastVisit' , new Date ().toISOString (), { signed: true })
117+
118+ if (! lastVisit) {
119+ res .setHeader (' Content-Type' , ' text/plain' )
120+ res .end (' Welcome, first time visitor!' )
121+ } else {
122+ res .setHeader (' Content-Type' , ' text/plain' )
123+ res .end (' Welcome back! Nothing much changed since you last visit at ' + lastVisit + ' .' )
122124 }
125+ })
123126
124- unsigned = cookies .get ( " unsigned" )
125- signed = cookies .get ( " signed" , { signed: true } )
126- tampered = cookies .get ( " tampered" , { signed: true } )
127-
128- assert .equal ( unsigned, " foo" )
129- assert .equal ( signed, " bar" )
130- assert .notEqual ( tampered, " baz" )
131- assert .equal ( tampered, undefined )
132-
133- res .writeHead ( 200 , { " Content-Type" : " text/plain" } )
134- res .end (
135- " unsigned expected: foo\n\n " +
136- " unsigned actual: " + unsigned + " \n\n " +
137- " signed expected: bar\n\n " +
138- " signed actual: " + signed + " \n\n " +
139- " tampered expected: undefined\n\n " +
140- " tampered: " + tampered + " \n\n "
141- )
127+ server .listen (3000 , function () {
128+ console .log (' Visit us at http://127.0.0.1:3000/ !' )
142129})
143130```
144131
0 commit comments