Express redis会话在本地不工作



我的redis会话无法在本地工作。

编辑:

还刚刚发现它实际上没有保存cookie

设置req.session[somekey]未定义类似:

req.session.user = user;

但是

当使用Postman时-它有效-Postman到我的localhost api端点

我有一个会话密钥-相同的功能,相同的过程

这意味着它是环保的-我不确定是什么。。。

代码破解

会话中间件

app.use(Session);
const RedisStore = connectRedis(session);
const redisClient = new Redis({ port: 6379, host: process.env.NODE_ENV === "production" ? "localhost" : "redis-server" });
const appSession: Express = express();
appSession.use(
session({
store: new RedisStore({ client: redisClient }),
secret: process.env.SESSION_SECRET || "secret",
name: "sid",
resave: false,
saveUninitialized: false,
cookie: {
secure: process.env.NODE_ENV === "production" ? true : "auto",
httpOnly: true,
maxAge: UTIL.asSeconds(Cache.DEAULT_EXPIRATION),
sameSite: process.env.NODE_ENV === "production" ? "none" : "lax",
},
}),
);
export const Session = appSession;

我的api只是"用户名"one_answers"密码"-没有什么特别的它设置了一个"sid"cookie,并像我上面写的那样在我的会话中设置用户——没什么奇怪的。。。

前端:


const axios = Axios.create({ withCredentials: true });

在后端上

if (process.env.NODE_ENV === "development") app.use(cors({ credentials: true, origin: "http://localhost:8000" }));

希望这有一天能帮助到

最新更新