Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express.JS上的会话cookie_Javascript_Node.js_Express_Cookies - Fatal编程技术网

Javascript Express.JS上的会话cookie

Javascript Express.JS上的会话cookie,javascript,node.js,express,cookies,Javascript,Node.js,Express,Cookies,各位! 我使用Express Session来管理服务器端会话,因此,当我获取用户数据并将其设置为我的会话变量时,它具有完美的值,但如果我尝试在其他文件中使用它们,它只获取cookie头,而不获取我的变量。我用的是邮递员,如果有关系的话 myserver.js var express = require('express'), bodyparser = require('body-parser'), validator = require('express-validator')

各位!

我使用Express Session来管理服务器端会话,因此,当我获取用户数据并将其设置为我的会话变量时,它具有完美的值,但如果我尝试在其他文件中使用它们,它只获取cookie头,而不获取我的变量。我用的是邮递员,如果有关系的话

myserver.js

var express = require('express'),
    bodyparser = require('body-parser'),
    validator = require('express-validator'),
    session = require('express-session'),
    app = express();

var consign = require('consign');
app.use(bodyparser.urlencoded({ extended: true }));
app.use(bodyparser.json())
app.use(validator())
app.use(session({
    secret: 'iau#$%#$Hgs@#t4',
    resave: false,
    saveUninitialized: false
}))

consign()
    .include('./src/routes')
    .then('./src/controllers')
    .then('./src/config/conexao.js')
    .then('./src/models')
    .then('./src/utils')
    .into(app);


app.listen(3000, function () {
    console.log("Servidor ON");
});

module.exports = app;
对用户进行自动认证的功能:

module.exports.autenticar = function (app, req, res) {

    var valido = app.src.utils.functions.validaUsuarioLogin(app, req);
    if (valido == true) { //true significa que não deu erro
        const conexao = new app.src.config.conexao.Conexao(),
            usuario = new app.src.models.usuariosDAO.UsuariosDAO()
        let dadosusuario = req.body;

        usuario.autenticar(conexao, dadosusuario, (err, result) => {
            if (err) {
                res.json(conexao.trataErros(err))
            } else if (result.length != 0) {
                //Permissoes Gerais
                req.session.exibecadastros = result[0].exibecadastros
                //Permissoes para Tarefas
                req.session.aprovatarefa = result[0].aprovatarefa;
                req.session.cancelatarefa = result[0].cancelatarefa
                req.session.alteratarefa = result[0].alteratarefa
                req.session.criatarefa = result[0].criatarefa
                //Permissao para Cargos
                req.session.criacargo = result[0].criacargo
                req.session.atualizacargo = result[0].atualizacargo
                req.session.deletacargo = result[0].deletacargo
                req.session.visualizacargos = result[0].visualizacargos
                console.log(req.session) //here we have data from the variables above
                //   res.json(result)
            }
            else {
                let msg = {
                    msg: "Nenhum usuario encontrado com essas informações."
                }
                res.send(msg)
            }
        }) //saindo da função de autenticação
    } else {
        res.send(valido)
    }
}
我要保护的路线:

module.exports = function (app) {
    app.get('/cargos', function (req, res) {
        console.log(req.session) // Here I have only cookie headers
        app.src.controllers.cargos.getCargos(app, req, res)
    });
}
它这样写
console.log(请求会话)

Session {
  cookie:
   { path: '/',
     _expires: null,
     originalMaxAge: null,
     httpOnly: true } }

根据我自己处理express.js/cookies/session和通过Postman进行测试的经验,我发现如果它不能维护cookies。我总是不得不自己将cookie/会话添加到Postman,或者在实际站点上使用Chrome中的Postman插件捕获会话


请尝试直接在浏览器中执行这些步骤,或者确保将返回的cookie添加到下一个发送的请求中

我曾直接在浏览器中尝试过,但在创建console.log(req.session.visualizeacargos)时遇到了相同的问题` if(req.session.visualizeacargos==true){app.src.controllers.cargos.getCargos(app,req,res)}else{res send(“Cannot Access”)}`在进行自动验证的控制器上,它表示变量为true…您是否尝试记录您希望能够看到的其他特定值?从我看到的代码来看,它看起来应该可以工作,但我不熟悉委托以及它如何加载中间件。虽然我刚才注意到上面概述的“自动验证用户的函数”,但在“else if(result.length!=0){”中没有res.[something]。可能是用于标识会话的cookie没有返回成功结果。请尝试添加res.status(200);res.end()之类的内容;以确保交易的完整性。