Electron遇到的坑—Cookies问题

98次阅读

共计 1238 个字符,预计需要花费 4 分钟才能阅读完成。

Electron 不支持之前在浏览器中使用 localstroage 的方法,暂时采用 cookie 解决。

需 Electron 默认的 cookie 是保存在主流程里面,所以需要使用 remote 模块提取
getcookie 的函数,我改写成了 promise(),用参考博客里面的方法,无法获得 cookie 的返回值。

官方文档
https://electronjs.org/docs/a…
参考博客
https://blog.csdn.net/changhu…
使用
const Cookie = require(‘./static/js/cookie.js’)

Cookie.getCookies(‘token’).then(function (res) {
console.log(‘res’, res)
})
cookie.js 代码
// cookie.js

// 通过 remote 模块取的原本在主进程中才能使用的 session 模块
const session = require(‘electron’).remote.session;
/**
* 获得
*/
const Cookie = {}
const Session = session
Cookie.getCookies = (name) => {
let data = []
return new Promise(function (resolve, reject) {
Session.defaultSession.cookies.get({name:name}, function (error, cookies) {
console.log(‘cookies’, cookies);
if (cookies.length > 0) {
data = cookies
}
resolve(cookies)
})
})

};
/**
* 清空缓存
*/
Cookie.clearCookies = (url) => {
Session.defaultSession.clearStorageData({
origin: url,
storages: [‘cookies’]
}, function (error) {
if (error) console.error(error);
})
};

/**
* 保存 cookie
* @param name cookie 名称
* @param value cookie 值
*/
Cookie.setCookie = (name, value) => {
let Days = 30;
let exp = new Date();
let date = Math.round(exp.getTime() / 1000) + Days * 24 * 60 * 60;
const cookie = {
url: “”,
name: name,
value: value,
expirationDate: date
};
Session.defaultSession.cookies.set(cookie, (error) => {
if (error) console.error(error);
});
};

// export default cookie
module.exports = Cookie

正文完
 0