Skip to content

Commit 4d14c82

Browse files
committed
docs: provide a working example
closes #56
1 parent 58dce91 commit 4d14c82

File tree

1 file changed

+27
-40
lines changed

1 file changed

+27
-40
lines changed

README.md

Lines changed: 27 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)