File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11'use strict' ;
22
3+ const Session = require ( './session.js' ) ;
4+
35const UNIX_EPOCH = 'Thu, 01 Jan 1970 00:00:00 GMT' ;
46const COOKIE_EXPIRE = 'Fri, 01 Jan 2100 00:00:00 GMT' ;
57const COOKIE_DELETE = `=deleted; Expires=${ UNIX_EPOCH } ; Path=/; Domain=` ;
@@ -21,6 +23,7 @@ class Client {
2123 this . cookie = { } ;
2224 this . preparedCookie = [ ] ;
2325 this . parseCookie ( ) ;
26+ Session . restore ( this ) ;
2427 }
2528
2629 parseCookie ( ) {
Original file line number Diff line number Diff line change @@ -11,7 +11,11 @@ const routing = {
1111 return `Session token is: ${ client . token } ` ;
1212 } ,
1313 '/api/method1' : async client => {
14- return { data : 'example result' } ;
14+ if ( client . session ) {
15+ return { data : 'example result' } ;
16+ } else {
17+ return { data : 'access is denied' } ;
18+ }
1519 } ,
1620 '/api/method2' : async client => ( {
1721 url : client . req . url ,
@@ -44,7 +48,11 @@ http.createServer((req, res) => {
4448 res . end ( result ) ;
4549 } , err => {
4650 console . error ( err . stack ) ;
51+ res . statusCode = 500 ;
4752 res . end ( 'Internal Server Error 500' ) ;
4853 } ) ;
54+ return ;
4955 }
56+ res . statusCode = 404 ;
57+ res . end ( 'Not found 404' ) ;
5058} ) . listen ( 8000 ) ;
Original file line number Diff line number Diff line change @@ -26,22 +26,28 @@ class Session extends Map {
2626 }
2727
2828 static start ( client ) {
29+ if ( client . session ) return client . session ;
30+ const token = generateToken ( ) ;
31+ client . token = token ;
32+ const session = new Session ( token ) ;
33+ client . session = session ;
34+ client . setCookie ( 'token' , token ) ;
35+ sessions . set ( token , session ) ;
36+ return session ;
37+ }
38+
39+ static restore ( client ) {
2940 const { cookie } = client ;
3041 const sessionToken = cookie . token ;
42+ console . log ( { sessionToken } ) ;
3143 if ( sessionToken ) {
3244 const session = sessions . get ( sessionToken ) ;
3345 if ( session ) {
46+ client . token = sessionToken ;
3447 client . session = session ;
3548 return session ;
3649 }
3750 }
38- const token = generateToken ( ) ;
39- client . token = token ;
40- const session = new Session ( token ) ;
41- client . session = session ;
42- client . setCookie ( 'token' , token ) ;
43- sessions . set ( token , session ) ;
44- return session ;
4551 }
4652
4753 static drop ( client ) {
You can’t perform that action at this time.
0 commit comments