簡體   English   中英

Nodejs/Express/Cookies:如何設置帶有秘密的簽名 cookie

[英]Nodejs/Express/Cookies: how do you set signed cookies with a secret

在我的目錄中,我有 app.js 和 Index.html ; 我正在嘗試從 App.js 設置 cookie; 我試過:-

var express = require('express'),
  app = express(),
  http = require('http'),
  cookieparser = require ('cookie-parser'),
  httpServer = http.Server(app);

app.use(express.static(__dirname + '/data'));

app.get('/', function(req, res) {

 let options = {
        maxAge: 60000, // would expire after 1 minutes
        httpOnly: true, 
        signed: true ,
        secret: 'secret'
    }

    // Set cookie

  app.use(require('express-session')({ secret: 'keyboard cat', resave: true, saveUninitialized: true }));

  res.cookie('cookieName', 'Success', options)

 res.sendFile(__dirname + '/index.html');

});

app.listen(8080);

當我從 Cmd 運行 app.js 時它讓我失望了這個錯誤 在此先感謝您的幫助

Error: cookieParser("secret") required for signed cookies

您需要指定在簽署 cookie 時將使用的密鑰。

您可以通過將以下行添加到您的代碼中來做到這一點。

app.use(cookieparser("secret"));

根據片段,您正在使用express-session模塊,如下所示:

app.use(require('express-session')({ secret: 'keyboard cat', ... }));

這已經說明您希望對 cookie 進行簽名。 因此,在您的 cookie options您可以刪除選項signed: true因為它是多余的。

最后一點,您需要改進該代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM