为什么 Hapi 在创建 cookie 时会爆炸?

Why does Hapi bomb when creating cookies?

使用 Hapi 设置一个简单的 cookie。

return h.redirect('http://localhost:3000/handle-login').state('tester', { authToken, refreshToken })

它坏了。

Error: Invalid cookie value: [object Object]
    at exports.Definitions.internals.Definitions.internals.Definitions.format...

refreshToken 和 authToken 只是字符串。

这似乎是 Hapi 的常见问题 https://github.com/hapijs/hapi/issues?utf8=%E2%9C%93&q=%22Invalid+cookie+value%22

但除了禁用服务器中的一些错误配置之外没有真正的解决方案(对我来说这听起来是个坏主意)

如何通过简单的 cookie 处理让 Hapi 满意?

如果您将 cookie 存储为 JSON,则需要在配置服务器时设置 encoding 属性:

server.state('tester', {
    ttl: null,
    isSecure: true,
    isHttpOnly: true,
    encoding: 'base64json',
    clearInvalid: true,
    strictHeader: true
});