[英]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.