获取Overleaf会话Cookie

Created on: September 28, 2024

Answered using OpenAI 01 Mini by OpenAI01

Question

In an already logged-in browser (Firefox for example):
1. Open "Developer Tools" (usually by pressing F12) and switch to the "Network" tab;
Then, navigate to the Overleaf main page (e.g., `https://www.overleaf.com`) in the address bar.
2. Filter the listed items with `/project` and select the exact match.
3. Check the "Cookie" under "Request Headers" of the selected item and copy its value to login.
The format of the Cookie value would be like: `overleaf_session2=...` or `sharelatex.sid=...`

请参考以上内容,写一个js脚本,来快捷获取该Cookie

Thought

浏览器脚本的作用

我在帮助用 JavaScript 脚本自动化从 Overleaf 浏览器会话中提取特定 cookie 值的过程。

探究脚本工作原理

浏览器JS难以直接访问网络请求。解析文档的cookie来提取特定值是一个替代方案。具体请求的cookie可能与文档中的cookie值相同。

提取cookie信息

这段代码通过document.cookie获取当前页面的所有cookie,筛选出以overleaf_session2sharelatex.sid开头的cookie,然后提取其值并输出在控制台。

提取会话Cookie

使用JavaScript从浏览器控制台获取Overleaf会话Cookie,并可选地将其复制到剪贴板。首先获取所有Cookie,然后查找特定的会话Cookie,最后将其值打印并复制。

Answer

当然!以下是一个JavaScript脚本,可以在浏览器控制台中运行,以快捷获取Overleaf的会话Cookie值(如overleaf_session2=...sharelatex.sid=...),并将其复制到剪贴板。

步骤:

  1. 打开Overleaf并确保已登录

    • 在Firefox浏览器中打开 Overleaf 并确保您已成功登录。
  2. 打开开发者工具

    • F12 键或右键点击页面并选择“检查”以打开开发者工具。
    • 切换到“控制台”(Console)标签。
  3. 粘贴并运行脚本

    • 将以下JavaScript代码粘贴到控制台中,然后按 Enter 键运行。

JavaScript脚本:

(function() { // 获取所有Cookie并拆分成数组 const cookies = document.cookie.split(';').map(cookie => cookie.trim()); // 查找Overleaf的会话Cookie const sessionCookie = cookies.find(cookie => cookie.startsWith('overleaf_session2=') || cookie.startsWith('sharelatex.sid=') ); if (sessionCookie) { // 提取Cookie的名称和值 const [name, value] = sessionCookie.split('='); console.log(`找到的Cookie: ${name}=${value}`); // 尝试将Cookie值复制到剪贴板 navigator.clipboard.writeText(sessionCookie) .then(() => { console.log('Cookie值已复制到剪贴板。'); }) .catch(err => { console.error('复制到剪贴板失败:', err); }); } else { console.log('未找到Overleaf的会话Cookie。'); } })();

说明:

  1. 获取并解析Cookie

    • document.cookie 获取当前页面的所有Cookie,以分号 ; 分隔。
    • 使用 splitmap 方法将Cookie字符串转换为数组,并去除每个Cookie的前后空格。
  2. 查找目标Cookie

    • 使用 find 方法查找以 overleaf_session2=sharelatex.sid= 开头的Cookie。
  3. 输出并复制Cookie

    • 如果找到目标Cookie,脚本会在控制台中输出完整的Cookie名称和值。
    • 使用 navigator.clipboard.writeText 方法将Cookie值复制到剪贴板(需要浏览器支持并且页面需要在安全上下文中,如HTTPS)。
  4. 错误处理

    • 如果未找到目标Cookie,控制台会提示相应信息。
    • 如果复制到剪贴板失败,控制台会输出错误信息。

注意事项:

  • 安全性:确保只在可信的环境中运行此脚本,因为它会访问和处理您的会话Cookie。
  • 浏览器支持navigator.clipboard 需要在支持Clipboard API的现代浏览器中运行,并且页面需要通过HTTPS加载。
  • 隐私保护:不要在不安全或共享的环境中泄露您的会话Cookie,以防止未经授权的访问。

通过运行上述脚本,您可以快速获取所需的Overleaf会话Cookie,并将其复制到剪贴板以便后续使用。

Share this Q&A