reactjs - 无法访问在不同 api 端点中使用 Node Js 中的 session 存储的变量

我有以下登录 api 端点

app.post('/login', (req, res)=>{

new Promise((resolve,reject)=>{

    client.query('select * from login_info where username = $1 and password = $2', [req.body.name, req.body.password],(error, result)=>{

        if(error!=null)
        {
            reject(400);
        }

        if(result.rowCount==1)
        {
            resolve(200);
        }
        else
        {
            reject(400);
        }

    });
}).then((code)=>{
    req.session.username = req.body.name;
    console.log(req.session);
    res.send({status : code});
}).catch((code)=>{
    res.send({status : code})
});

});

现在成功登录后,用户名变量存储在 session 对象中。

但我无法通过另一个 api 端点获取该“用户名”变量的 value。

app.post('/logout', (req, res)=>{
console.log(req.session.username + " is trying to logout");
req.session.destroy(()=>{
    console.log("session destroyed");
});
res.send({status : 200});

});

现在,当我向“/login”API 端点发出请求时,“用户名”存储在 session 中,之后每当我调用“/logout”API 端点时,“未定义正在尝试注销”是显示。

我无法理解为什么????

我使用 ReactJs 作为我的前端。

回答1

这里在 cookies 对象中将安全属性的 value 设置为 false。

为什么 ??

安全的作用是它只会通过 HTTPS 连接发送 cookie。现在,如果我们尝试使用 HTTP 连接,那么 cookie 可能无法正确发送,因此会导致意外结果。