如何使用hapi设置cookie?

时间:2018-04-04 13:20:18

标签: javascript hapijs

我阅读了hapi.js的官方文档,代码类似于文档,但是不可能设置cookie

const Hapi=require('hapi');
const server = Hapi.server({
    host:'localhost',
    port:3333
});

server.state('user', {
    ttl: 24 * 60 * 60 * 1000,     // One day
    isSecure: true,
    isHttpOnly: true,
    encoding: 'base64json',
    clearInvalid: false,
    strictHeader: true
});
server.route({
    method:'POST',
    path:'/login',
    handler:function(request,h) {
        var data = request.payload;

        if(data.account === "a" && data.password === "a"){
            h.state('user', { account: "shmily" });

            console.log(request.state.user); //undefined

            return h.response('success');
        }else{
            return "wrong";
        }

    }
});
async function start() {
    try {
        await server.start();
    }
    catch (err) {
        process.exit(1);
    }
    console.log('服务器开启了3333端口!');
};
start();

我想设置cookie但它不起作用。我的英语不是很好,我希望每个人都能更宽容。

1 个答案:

答案 0 :(得分:1)

您应该在开发中将isSecure更改为false。当设置为true时,如果没有安全连接(https),则不会设置cookie。

因此,请更改您的代码,使其看起来像这样

server.state('user', {
   ttl: 24 * 60 * 60 * 1000,     // One day
   isSecure: false,
   isHttpOnly: true,
   encoding: 'base64json',
   clearInvalid: false,
  strictHeader: true
});