From 2c99634c6fe22c5da20ab4e88626bf7403fc8996 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Thu, 2 Feb 2023 07:08:18 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=A7=A3=E5=86=B3=E6=A1=8C=E9=9D=A2?= =?UTF-8?q?=E7=AB=AF=E8=B7=A8=E5=9F=9Fcookie=E6=97=A0=E6=B3=95=E6=90=BA?= =?UTF-8?q?=E5=B8=A6=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/electron.js | 2 ++ electron/package.json | 2 +- electron/utils.js | 17 ++++++++++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/electron/electron.js b/electron/electron.js index 28ff28274..d80835e10 100644 --- a/electron/electron.js +++ b/electron/electron.js @@ -173,6 +173,8 @@ if (!getTheLock) { }) app.on('ready', () => { isReady = true + // SameSite + utils.useCookie() // 创建主窗口 createMainWindow() // 创建托盘 diff --git a/electron/package.json b/electron/package.json index 3c7ea4bc2..ba6a934b9 100644 --- a/electron/package.json +++ b/electron/package.json @@ -32,7 +32,7 @@ "@electron-forge/maker-squirrel": "^6.0.4", "@electron-forge/maker-zip": "^6.0.4", "dotenv": "^16.0.3", - "electron": "^22.0.0", + "electron": "^22.2.0", "electron-builder": "^23.6.0", "electron-notarize": "^1.2.2", "form-data": "^4.0.0", diff --git a/electron/utils.js b/electron/utils.js index ac22b5687..4d869f32a 100644 --- a/electron/utils.js +++ b/electron/utils.js @@ -1,5 +1,5 @@ const fs = require("fs"); -const {shell, dialog} = require("electron"); +const {shell, dialog, session} = require("electron"); module.exports = { /** @@ -369,5 +369,20 @@ module.exports = { // 版本号完全相同 return 0; + }, + + /** + * electron15 后,解决跨域cookie无法携带, + */ + useCookie() { + const filter = {urls: ['https://*/*']}; + session.defaultSession.webRequest.onHeadersReceived(filter, (details, callback) => { + if (details.responseHeaders && details.responseHeaders['Set-Cookie']) { + for (let i = 0; i < details.responseHeaders['Set-Cookie'].length; i++) { + details.responseHeaders['Set-Cookie'][i] += ';SameSite=None;Secure'; + } + } + callback({responseHeaders: details.responseHeaders}); + }); } }