electron持久化cookie的方法,从session中获取

文章目录

  • 1. 持久化方法
  • 2. 代码说明
  • 3. 补充

1. 持久化方法

session.defaultSession.cookies.get({}).then((cookies) => {// 恢复cookie现场cookies.forEach((cookiesItem) => {let { secure = false, domain = "", path = "" } = cookiesItem;BrowserWindow.webContents.session.cookies.set(Object.assign(cookiesItem, {url: (secure ? "https://" : "http://") + domain.replace(/^\./, "") + path,})).then(() => {}).catch((e) => {console.error({message: "恢复cookie失败",cookie: cookiesItem,errorMessage: e.message,});}).finally(() => {});});}).catch((error) => {console.log(error);});

2. 代码说明

electron 官网在 session 文档 的 类:Cookies 给出了相应的 cookie 的获取和其他操作方法,这种获取方法.get会连同 BrowserView 中的 cookie 一同获取,主要是通过session.defaultSession.cookies.get方法获取的:

const { session } = require("electron");// Query all cookies.
session.defaultSession.cookies.get({}).then((cookies) => {console.log(cookies);}).catch((error) => {console.log(error);});

获取到以后,使用BrowserWindow.webContents.session.cookies.set对异步获得的cookies进行设置,将cookies恢复至 BrowserWindow 或 BrowserView 即可。

在开发模式中,session可以持久化,但是 打包后 ,就不行了,因此还需要结合 store 进行持久化!!!也很简单,把session.defaultSession.cookies.get获取的cookies保存到store就好

3. 补充

为什么要进行如下设置?必须设置secure = false吗?

   cookies.forEach((cookiesItem) => {let {secure = false,domain = '',path = ''} = cookiesItem

GPT 的回答如下:
在 Web 开发中,secure 是 HTTP Cookie 的一个属性,它指定了一个 Cookie 是否只能通过 HTTPS 协议进行传输。当 secure 属性设置为 true 时,表示该 Cookie 只能在通过加密的 HTTPS 连接时发送到服务器,而在使用非加密的 HTTP 连接时不会发送。

将 secure 属性设置为 false 有一些潜在的风险,因为这样的 Cookie 可能会在不安全的网络中被窃取。如果在不安全的环境中使用敏感信息(例如用户的身份验证凭据)并且 secure 属性被设置为 false,那么这些信息可能会被中间人攻击者截取。因此,为了加强安全性,通常建议将 secure 属性设置为 true,特别是对于包含敏感信息的 Cookie。

在某些情况下,可能会有一些开发或测试的需求,需要在非 HTTPS 环境下使用 Cookie。在这种情况下,将 secure 属性设置为 false 可能是合适的。但在生产环境中,强烈建议将 secure 属性设置为 true,以确保敏感信息的安全传输。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/191756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

零基础打靶—CTF4靶场

一、打靶的主要五大步骤 1.确定目标:在所有的靶场中,确定目标就是使用nmap进行ip扫描,确定ip即为目标,其他实战中确定目标的方式包括nmap进行扫描,但不局限于这个nmap。 2.常见的信息收集:比如平常挖洞使用…

Python标准库:math库【侯小啾python领航班系列(十六)】

Python标准库:math库【侯小啾python领航班系列(十六)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…

【每日一题】找出叠涂元素

文章目录 Tag题目来源题目解读解题思路方法一:哈希表 写在最后 Tag 【哈希表】【数组】【2023-12-01】 题目来源 2661. 找出叠涂元素 题目解读 从左往右遍历 arr 给矩阵 mat 上色,在上色的过程中矩阵的某一行或者某一列的全部被上色了,返回…

(C语言)找出1-99之间的全部同构数

同构数&#xff1a;它出现在平方数的右边。例&#xff1a;5是25右边的数&#xff0c;25是625右边的数&#xff0c;即5和25均是同构数。 #include<stdio.h> int main() {for(int i 1;i < 100;i ){if((i*i % 10 i) || (i*i % 100 i))printf("%d\t%d\n",i,…

第6章 异步爬虫

目录 1. 协程的基本原理1.1 案例引入1.2 基础知识阻塞非阻塞同步异步多进程协程 1.3 协程的用法1.4 定义协程1.5 绑定回调1.6 多任务协程1.7 协程实现1.8 使用aiohttp安装使用 2. aiohttp的使用2.1 基本介绍2.2 基本实例2.3 URL参数设置2.4 其他请求类型2.5 POST请求表单提交JS…

Java数据结构之《哈希查找》题目

一、前言&#xff1a; 这是怀化学院的&#xff1a;Java数据结构中的一道难度中等的一道编程题(此方法为博主自己研究&#xff0c;问题基本解决&#xff0c;若有bug欢迎下方评论提出意见&#xff0c;我会第一时间改进代码&#xff0c;谢谢&#xff01;) 后面其他编程题只要我写完…

ChatGPT成为“帮凶”:生成虚假数据集支持未知科学假设

ChatGPT 自发布以来&#xff0c;就成为了大家的好帮手&#xff0c;学生党和打工人更是每天都离不开。 然而这次好帮手 ChatGPT 却帮过头了&#xff0c;莫名奇妙的成为了“帮凶”&#xff0c;一位研究人员利用 ChatGPT 创建了虚假的数据集&#xff0c;用来支持未知的科学假设。…

HarmonyOS应用开发——程序框架UIAbility、启动模式与路由跳转

前言 UIAbility简单来说就是一种包含用户界面的应用组件&#xff0c;用于和用户进行交互。每一个UIAbility实例&#xff0c;对应于一个最近任务列表中的任务。 一个应用可以有一个UIAbility&#xff0c;也可以有多个UIAbility。一个UIAbility可以对应于多个页面&#xff0c;建议…

半监督语义分割综述

paper link&#xff1a;https://arxiv.org/pdf/2302.09899.pdf 1. Introduction 图像分割是最古老、研究最广泛的计算机视觉 (CV) 问题之一。图像分割是指将图像划分为不同的非重叠区域&#xff0c;并将相应的标签分配给图像中的每个像素&#xff0c;最终获得ROI区域位置及其类…

线上CPU飙高问题排查!

https://v.douyin.com/iRTqH5ug/ linux top命令 top 命令是 Linux 下一个强大的实用程序&#xff0c;提供了系统资源使用情况的动态、实时概览。它显示了当前正在运行的进程信息&#xff0c;以及有关系统性能和资源利用情况的信息。 以下是 top 命令提供的关键信息的简要概述…

Linux 内核源码各版本下载

下载地址&#xff1a; kernel/git/stable/linux.git - Linux kernel stable treehttps://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/refs/ 1. Linux 内核的基本概念&#xff1a; 内核是什么&#xff1f; 内核是操作系统的核心部分&#xff0c;负责管理系统…

springboot工作原理

Spring Boot 是一个用于创建独立的、基于Spring框架的Java应用程序的开发框架。它简化了Spring应用程序的配置和部署过程&#xff0c;提供了一种快速、方便的方式来构建可扩展的、可部署的应用程序。 Spring Boot 的工作原理可以概括如下&#xff1a; 1. 自动配置&#xff08…

割裂式“多渠道”不是真正的全渠道!浅析全渠道零售和DTC在理念上的不谋而合|徐礼昭

图文&#xff1a;徐礼昭 全渠道零售概念解析 全渠道零售概念由来已久&#xff0c;单纯从业务经营角度&#xff0c;一个品牌在线上线下多个渠道铺货卖货&#xff0c;只能说是多渠道零售&#xff0c;而不是全渠道零售。商派市场负责人徐礼昭认为&#xff0c;品牌企业应该从消费者…

Java JDBC SQLite 示例

SQLite是一个简单、小巧、快速、可靠、无服务器、零配置和无需安装的 SQL 数据库库&#xff0c;它与客户端应用程序在进程中运行。尽管www.sqlite.org没有官方的 JDBC 驱动程序库&#xff0c;但www.xerial.org提供了一个——一个 XML 数据库管理系统项目。 1.下载SQLite JDBC驱…

wpf devexpress 使用IDataErrorInfo实现input验证

此处下载源码 当form初始化显示&#xff0c;Register按钮应该启动和没有输入错误应该显示。如果用户点击注册按钮在特定的输入无效数据&#xff0c;form将显示输入错误和禁用的注册按钮。实现逻辑在标准的IDataErrorInfo接口。请查阅IDataErrorInfo接口&#xff08;System.Com…

Fabric:创建应用通道

搭建自定义网络可以参考文章&#xff1a; https://blog.csdn.net/yeshang_lady/article/details/134113296 1 创建通道 网络搭建完成之后&#xff0c;就可以开始创建通道了。Fabric V2.5.4中可以在不创建系统通道的情况下直接创建应用通道。 1.1 修改配置文件 先创建配置文…

【AIGC】接着昨天的AI“洗图”骚操作,继续调戏国产大模型

目录 一、洗稿&#xff0c;洗图&#xff0c;洗视频 二、如何洗图 2.1 先看看效果 2.2 如何做的 2.3 提示词示例 三、试试星火和通义 2.1 星火和通义的特点 2.2 星火的做图能力理解力强&#xff0c;准确度还有待提高 2.3 通义大模型伺候 2.4 这3个大模型可以配合使用 …

【1day】华天软件 OA ntkodownload接口任意文件读取学习

注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现

结构体||联合体

1.结构体 1.1实际生活中一些东西往往有多个元素组成。如一名学生有身高、体重、名字、学号等。这时候就需要用到结构体。 结构体是一些值的结合&#xff0c;这些值被称为成员变量。结构体的每个成员可以是不同类型的变量&#xff0c;如&#xff1a;标量、数组、指针、甚至是其…

基于模型生成代码(MBD)

基于模型生成代码(MBD) 1、MBD的基本概念 图形化模型:MBD主要使用图形化的方式来表示系统。这些模型可以是控制流程图、状态机、或者其他形式的图形表示,能够清晰地展示系统的行为和逻辑。从概念到实现:在MBD中,整个开发流程从概念设计开始,直至实现和测试,都围绕模型…