Node.js 快速会话创建每个请求的新会话
我搜索了很多,没有找到解决方案, 当我向邮递员发出请求时,一切都很顺利 但在我的react应用程序中,我发送的每一个请求都会有新的会话,我会丢失我的用户信息(使用passport) 有我的后端会话配置:Node.js 快速会话创建每个请求的新会话,node.js,reactjs,express,express-session,Node.js,Reactjs,Express,Express Session,我搜索了很多,没有找到解决方案, 当我向邮递员发出请求时,一切都很顺利 但在我的react应用程序中,我发送的每一个请求都会有新的会话,我会丢失我的用户信息(使用passport) 有我的后端会话配置: app.use(cors({ credentials: true, origin: 'http://localhost:3000', methods:['GET','POST', 'DELETE', 'PUT'], })); //SESSION CONFIGURATION con
app.use(cors({
credentials: true,
origin: 'http://localhost:3000',
methods:['GET','POST', 'DELETE', 'PUT'],
}));
//SESSION CONFIGURATION
const sessionStore = new MongoStore({
mongooseConnection: connection,
collection: 'sessions'
})
const sessionConfig = {
store: sessionStore,
secret: process.env.SESSION_SECRET,
resave: false,
saveUninitialized: true,
cookie: { maxAge: 3600000, httpOnly: true, secure: false}
};
app.use(session(sessionConfig));
const instance = axios.create({
baseURL: 'http://127.0.0.1:5000/',
withCredentials: true
});
有我的axios配置(fontend):
app.use(cors({
credentials: true,
origin: 'http://localhost:3000',
methods:['GET','POST', 'DELETE', 'PUT'],
}));
//SESSION CONFIGURATION
const sessionStore = new MongoStore({
mongooseConnection: connection,
collection: 'sessions'
})
const sessionConfig = {
store: sessionStore,
secret: process.env.SESSION_SECRET,
resave: false,
saveUninitialized: true,
cookie: { maxAge: 3600000, httpOnly: true, secure: false}
};
app.use(session(sessionConfig));
const instance = axios.create({
baseURL: 'http://127.0.0.1:5000/',
withCredentials: true
});
我真的很累了,这个问题需要一些帮助,提前谢谢
已更新
问题没有解决,但我发现我的客户端没有在浏览器中存储任何coockie,我在auth响应中得到coockie设置res.headers-
app.use((req,res,next)=>{res.setHeader(“访问控制允许头”,“X-request-With,Accept,Content-Type”)res.setHeader(“访问控制允许源”,"http://localhost:3000)res.setHeader(“访问控制允许凭据”,true)res.setHeader(“访问控制允许方法”,“获取,HEAD,POST,PUT,DELETE,TRACE,OPTIONS,PATCH”)next();})
。它可能有助于存储cookie。设置res.headers-app.use((req,res,next)=>{res setHeader(“访问控制允许标头“,”X-request-With,Accept,Content-Type“,”res.setHeader(“访问控制允许来源“,”http://localhost:3000)res.setHeader(“访问控制允许凭据”,true)res.setHeader(“访问控制允许方法”,“获取、头、发布、放置、删除、跟踪、选项、修补程序”)next();})
。它可能有助于存储cookie。