node设置res.cookie跨域问题解决

由于后端需要加入验证功能,前端调用接口时后端根据token验证用户是否存在。

每个方法都要验证,为了方便决定使用cookieParser和res.cookie()在后端设置cookie,这样的做法省去了让前端传入token的步骤,省事很多。

真正去做的时候却发现出现以下情况:

Response Headers里面已经有了Set-Cookie了,但是Application里面的cookie却没值

经过一番查找才发现可能是涉及到了跨域问题

于是我设置如下:

前端:在request.js文件

const request = axios.create({
  baseURL: process.env.VUE_APP_BASE_SERVER_01 + 
  process.env.VUE_APP_BASE_API,
  timeout: 15000,
  withCredentials: true,
});

  

后端:在app.js

app.use(
  cors({
    credentials: true,
    origin: 'http://****:****', // web前端服务器地址
  })
);

之后就ok啦

通过这个事例我才知道我上家公司为什么每个接口的后面都要加上id=*****,可能也是为了验证接口访问者的身份,但是没有在后端写入cookie,而是直接在?后面加入用户id。

很显然这个要方便很多。

今天又是学习到了新知识的一天~  Nice ending~

最后一天啦,提前新年快乐虎虎生威~

原文地址:https://www.cnblogs.com/pjw233/p/15753682.html