【问题标题】:How to locally test set Cookies with the Same Origine Policy如何在本地测试设置同源策略的 Cookie
【发布时间】:2021-12-11 06:04:24
【问题描述】:

我在本地测试我的网络应用时遇到问题。 我在请求响应中设置了 cookie(方法如下):

const token = createToken(user._id);
res.cookie("jwt", token, { httpOnly: true, maxAge: maxAge,  });
res.status(201).json({ user: user._id });
return res;

但是我在 React Client 中执行以下请求时遇到了关于同域策略的错误:

axios.post(`${process.env.REACT_APP_API_URL}api/user/login`, {
                email: email,
                password: password,
            },
            {
                withCredentials: true
            })
            .then((res) => {
                if (res.data.errors) {
                    //Show errors
                }
            })
            .catch((err) => {
                console.log(err);
            }); 

我尝试使用参数 withCredentials 执行它:false

请求有效,但未存储 cookie 但是我在我的请求的响应中设置了 Cookie

这是我的 CORS 选项:

const corsOptions = {
    origin: process.env.CLIENT_URL,
    credentials: true,
    allowedHeaders: ["sessionId", "Content-Type"],
    exposedHeaders: ["sessionId"],
    methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
    preflightContinue: false
};

【问题讨论】:

    标签: javascript node.js reactjs express


    【解决方案1】:

    我将我的 cors 选项替换为:

    const corsOptions = {origin: process.env.CLIENT_URL,credentials: true};
    

    并添加:

    app.options('*', cors(corsOptions));
    

    现在它正在工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      • 2014-12-19
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 2014-02-05
      • 2015-12-08
      相关资源
      最近更新 更多