【问题标题】:How to get Cookies in Nodejs/Hapijs如何在 Nodejs/Hapijs 中获取 Cookie
【发布时间】:2017-12-14 04:19:03
【问题描述】:

我是 NodeJs 开发的新手。我正在使用 HapiJs 框架。我使用以下代码设置了 cookie:

        reply("hello").state('cookie_name', accessToken, {
          ttl: 365 * 24 * 60 * 60 * 1000, // expires a year from today
          encoding: 'none',
          isSecure: false,
          isHttpOnly: false,
          clearInvalid: false,
          strictHeader: true
        });

上面的代码运行良好,我可以看到在浏览器中设置了名为 cookie_name 的 cookie 以及一个名为 io 的额外 cookie(我猜它是由 socket.io 节点模块自动设置的)正在使用)

但是当我尝试使用以下代码获取该 cookie 时

request.headers.cookie

它只显示一个 cookie(即io)。它没有向我显示名称为 cookie_name 的 cookie。 那么,谁能告诉我我在这里犯了什么错误。我在设置 cookie 时是否在 options 中传递了不正确的值,还是需要使用其他方式检索 cookie。

【问题讨论】:

    标签: node.js cookies http-headers hapijs httpcookie


    【解决方案1】:

    在我们的 Hapi 应用程序中,我们使用了 hapi-auth-cookie 插件。

    有一个example application here 很好地显示了它的用途。

    【讨论】:

    • 这里的password-should-be-32-characters 是什么,是否必须包含 32 个字符。 sid-example也是cookie的名字吗?
    • @DimpalSingh,出于安全原因,他们只是建议使用 32 个字符或更长的密码。
    • 阅读顶部的文档;不要只跳到代码示例。它解释说:“'cookie' 方案采用以下选项:”cookie - cookie 名称。默认为 'sid'。"...
    • 谢谢,终于成功了。但我需要将 hapi 版本更新到 17.0.1。只有这样它才起作用。非常感谢朋友。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 2015-10-09
    • 1970-01-01
    • 2014-09-18
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多