perf: 解决桌面端跨域cookie无法携带的问题

This commit is contained in:
kuaifan 2023-02-02 07:08:18 +08:00
parent 948cb55f89
commit 2c99634c6f
3 changed files with 19 additions and 2 deletions

View File

@ -173,6 +173,8 @@ if (!getTheLock) {
})
app.on('ready', () => {
isReady = true
// SameSite
utils.useCookie()
// 创建主窗口
createMainWindow()
// 创建托盘

View File

@ -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",

17
electron/utils.js vendored
View File

@ -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});
});
}
}