【问题标题】:Setting an cookie from an third-party API从第三方 API 设置 cookie
【发布时间】:2021-11-28 19:52:06
【问题描述】:

我有一个 ExpressJS API 和一个 Vue 前端。 在前端,我对后端进行 API 调用。前端托管在(示例)q.front.com 上,后端托管在 x.back.dev 上。它们都有 HTTPS 连接。现在如何设置 cookie 并再次在 API 上接收 cookie?

我曾尝试的Set-Cookie:的Set-Cookie:fatham = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MzYzMzE0MTcsImlhdCI6MTYzMzczOTQxNzc1NiwianRpIjoiYzllYzdkMWEtYzAwZS00OWU1LTkyMTQtMTljYjU5ZjhkMmJjIiwiaXNzIjoiVk9MVElBQyIsInN1YiI6ImluZm9AZG9ycHN3YWFyZC5jb20ifQ.6z0m3tGo3z7q4L35V0hdyqXC_ZjhtJJC0pktcUwQOLg;路径=/;安全的; SameSite=无

set-cookie: fatham=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MzYzMzE0MTcsImlhdCI6MTYzMzczOTQxNzc1NiwianRpIjoiYzllYzdkMWEtYzAwZS00OWU1LTkyMTQtMTljYjU5ZjhkMmJjIiwiaXNzIjoiVk9MVElBQyIsInN1YiI6ImluZm9AZG9ycHN3YWFyZC5jb20ifQ.6z0m3tGo3z7q4L35V0hdyqXC_ZjhtJJC0pktcUwQOLg;SameSite=None; Secure;Domain=x.back.dev;path=/;

但是在任何域中都没有设置 cookie...

【问题讨论】:

标签: vue.js express cookies cross-domain


【解决方案1】:

下面是一个简单的例子说明你是如何做到的

function setCookie(cname, cvalue, exdays) {
  const d = new Date();
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  let expires = "expires="+d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function getCookie(cname) {
  let name = cname + "=";
  let ca = document.cookie.split(';');
  for(let i = 0; i < ca.length; i++) {
    let c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

function checkCookie() {
  let user = getCookie("username");
  if (user != "") {
    alert("Welcome again " + user);
  } else {
    user = prompt("Please enter your name:", "");
    if (user != "" && user != null) {
      setCookie("username", user, 365);
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    • 2021-05-21
    • 2020-12-18
    • 1970-01-01
    • 2019-03-31
    • 2015-03-30
    • 2023-04-04
    相关资源
    最近更新 更多