window.open()打开的跨域页面,能否通过js写入cookie?

发布于 2022-09-12 04:01:14 字数 718 浏览 22 评论 0

代码如下,我执行该逻辑理想状态下直接进入 this.formData.url ;而实际上在登录页被挡住了,查看过页面的cookie,并没有我设置的token

this.formData.urlhttps://200.200.5.5这种格式。

token已验证过是正确的,试过手动在网站通过js添加cookie然后刷新,可行

之前有人实现过该功能,代码雷同,不知道是不是我姿势不对

async login () {
    let token = await this.getToken();

    if (!token) {
        return;
    }

    console.log(token);
    // token=TEllnRx61o7yixQ8icuis7frmzvZWF/x
    
    document.cookie = `${token}; path=/; domain=${this.formData.url}; expires=${new Date().getTime() + (1000 * 60)};`;
    
    let newWin = window.open();
    newWin.location.href = this.formData.url;
},

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

酷遇一生 2022-09-19 04:01:14

写入 cookie 时域名是受限的,你只能在当前域写入 cookie,请求的时候浏览器会自动从当前域获取 cookie 并发送,所以你不能操作其它域的 cookie,怎么操作都不行。

疏忽 2022-09-19 04:01:14

如果是跨域这样应该解决不了,一般还是传参过去,在另一边做处理,

梦途 2022-09-19 04:01:14

独立网站的话就没什么办法了。讲道理他不会让你这样随便设置的。

如果可以设置会有什么危害?

  1. 你正在充钱,我把你的cookie改了,改成了我的账号
  2. 无法快捷登录,因为 cookie 被其他地方篡改了。甚至说所有网页都无法登录了,因为cookie被一个页面强制覆盖了。
  3. 要是能读就更坑了,万一有敏感信息不就都暴露了?
玻璃人 2022-09-19 04:01:14

两个不同域名地址,跨域了cookie是不能共享的

魔法唧唧 2022-09-19 04:01:14

统一回复,前端跨域写cookie,不可行。之前被实现的方案是个误会,访问的是反向代理的地址。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文