2017-05-10 2 views
1

Wenn ich ein Cookie als HttpOnly definiert habe, verschwindet dieses Cookie nach dem Neustart des Servers von request.state. Dies scheint nicht Teil der HttpOnly-Spezifikation zu sein. Gibt es einen Weg in HapiJS?Hapijs - HttpOnly Cookies verschwinden beim Neustart des Servers

// cookie definition 
server.state('my_cookie', { 
    ttl: YEAR_IN_MS, 
    isSecure: false, 
    isHttpOnly: true, 
    encoding: 'base64json', 
    clearInvalid: false, 
    strictHeader: true, 
    path: '/' 
} 

server.ext('onPreResponse', function(request, reply) { 
    console.log(request.state.my_cookie) // returns undefined after server restart 

    reply.continue() 
}) 

Antwort

0

Überprüfen Sie das folgende Code-Snippet, Cookie noch nach dem Neustart des Servers lebendig.

const Hapi = require('hapi'); 
const server = new Hapi.Server(); 
server.connection({ port: 8005, host: 'localhost' }); 

server.start((err) => { 
    if (err) { 
     throw err; 
    } 
    console.log(`Server running at: ${server.info.uri}`); 
}); 

server.route({ 
    method: 'GET', 
    path: '/', 
    handler: function (request, reply) { 
     //Cookie: { "foo": "Bar0.3077739876826606" } 
     reply('Cookie: ' + JSON.stringify(request.state.my_cookie, null, '\t')) 
    } 
}); 

server.route({ 
    method: 'GET', 
    path: '/set-cookie', 
    handler: function (request, reply) { 
     return reply('Success').state('my_cookie', { foo: 'Bar' + Math.random() }) 
    } 
}); 

const YEAR_IN_MS = 86400000 * 365 
// cookie definition 
server.state('my_cookie', { 
    ttl: YEAR_IN_MS, 
    isSecure: false, 
    isHttpOnly: true, 
    encoding: 'base64json', 
    clearInvalid: false, 
    strictHeader: true, 
    path: '/' 
}) 

server.ext('onPreResponse', function(request, reply) { 
    console.log(request.state.my_cookie) //{ foo: 'Bar0.3077739876826606' } 
    reply.continue() 
}) 
Verwandte Themen