//cloudinary
require("dotenv").config();
cloudinary.config({
cloud_name: "loghorizon",
api_key: process.env.CLOUDINARY_API_KEY,
api_secret: process.env.CLOUDINARY_SECRET,
});
require("./config/passport")(passport);
//MongoDB
connectDB();
//---------------------------------- SERVER ----------------------------------
const app = Express();
const httpServer = http.createServer(app);
const io = Socket(httpServer, {
cors: {
origin: process.env.CLIENT_SIDE_URL,
methods: ["GET", "POST"],
allowedHeaders: ["my-custom-header"],
credentials: true,
},
});
app.use(
cors({
origin: process.env.CLIENT_SIDE_URL, // allow to server to accept request from different origin
methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
credentials: true, // allow session cookie from browser to pass through
})
);
//---------------------------------- MIDDLEWARE ----------------------------------
// increase bandwidth to allow for base64 strings
app.use(Express.json({ limit: "40mb", extended: true }));
app.use(Express.urlencoded({ limit: "40mb", extended: true }));
app.set("trust proxy", 1);
app.use(
Session({
name: "LHsession",
secret: process.env.COOKIE_SECRET,
resave: true,
store: new MongoStore({ mongooseConnection: mongoose.connection }),
cookie: {
sameSite: false,
maxAge: 8.64e7,
secure: false,
httpOnly: false,
},
})
);
// utility for monitoring requests
app.use(Morgan("dev"));
//---------------------------------- Pasport config ----------------------------------
app.use(passport.initialize());
app.use(passport.session());
该项目在我的开发环境中完美地工作(在多台计算机上测试)。抛出以下错误:已被CORS策略阻止:没有访问-控制-允许-起源...
重要的是要注意,除了我被重定向回我的web应用程序会话时没有存储外,带有帐户的实际授权页面会显示出来。
不言而喻,这些都是无效的
app.set("trust proxy", 1);
app.use(
Session({
name: "LHsession",
secret: process.env.COOKIE_SECRET,
resave: true,
store: new MongoStore({ mongooseConnection: mongoose.connection }),
cookie: {
sameSite: false,
maxAge: 8.64e7,
secure: false,
httpOnly: false,
},
})
);
const server = axios.create({
withCredentials: true,
baseURL: process.env.REACT_APP_SERVER + "/board",
});
问题解决了,我在我的网站域名下注册了这两个,现在它就像一个符咒。虽然没有解决cors问题,但我还是设法让我的项目开始工作。更具决定性和彻底性的潜在罪魁祸首是:跨域会话Cookie(Netlify上Heroku React应用程序上的Express API)
我们有一个在线商店,在三个表中存储产品详细信息: 产品(名称、描述、品牌)-总计10,000个条目 产品-变体(大小、价格、可用性)-总计80.000项 产品-属性(颜色)-总计60.000项 这给出了大约400.000项的总组合。 示例: 产品为“Nike Air Max” 变体是“尺寸36,70美元”、“尺寸37,72美元”、“尺寸38,74美元” 属性为“Color Red”和“Color
我第一次使用JSON Web令牌(JWT)。我正在制作一个节点。js应用程序。我想使用JWT进行身份验证。根据文档,我将JSON令牌返回到前端。 但是我不知道如何将这个JSON令牌保存到我的浏览器头中,这样它就不会丢失,并随头一起再次发送到后端。如何将它保存在我的浏览器存储中,并在每次向后端发送请求时将其添加到请求头中?
问题内容: 我试图在postgres 9.3上使用sql调用函数内的函数。 这个问题与我的另一篇文章有关。 我写了下面的函数。到目前为止,我还没有合并任何类型的save-output(COPY)语句,因此我试图通过创建嵌套函数print-out函数来解决此问题。 以上功能有效。 尝试创建嵌套函数。 调用嵌套函数。 输出 上面给出了这个。但是,当在print_out()中将arg1,arg2替换为’
问题内容: 我在任何地方都找不到此答案,但是可以从MySQL中的另一个存储过程调用存储过程吗?我想找回标识值,并在父存储过程中使用它。我们不能再使用FUNCTIONS! 问题答案: 参数应该可以帮助您将值返回给调用过程。基于此,解决方案必须是这样的。
我的应用程序的注销功能面临一个问题。 问题 调用req.session.destroy不会仅在生产中从Sessions MongoDB集合中删除会话数据。 请求命中服务器,logout方法运行,destroy函数没有返回错误,在会话上运行console.log显示它是空的,但在页面刷新上用户仍然登录,检查db.sessions.find()显示会话数据未被触及。 我认为子域的设置与此有关,正如预期