我阅读了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但它不起作用。我的英语不是很好,我希望每个人都能更宽容。
答案 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
});