【问题标题】:Delete all Cookies in Electron desktop app删除 Electron 桌面应用中的所有 Cookie
【发布时间】:2017-05-09 22:47:00
【问题描述】:

我在电子桌面应用程序中使用 oauth (Stack Overflow),并且有一个加载 oauth url 的 web 视图。我的应用程序中有一个注销按钮,该按钮将从 Stack Overflow 网站和应用程序中注销用户。我该怎么做?

如何从电子应用程序的 web 视图中删除所有会话 cookie?

【问题讨论】:

    标签: webview oauth-2.0 session-cookies electron desktop-application


    【解决方案1】:

    如果您想清除所有 cookie,这将是最直接的方法。

    const { session } = require('electron');
    
    session.defaultSession.clearStorageData({storages: ['cookies']})
            .then(() => {
                console.log('All cookies cleared');
            })
            .catch((error) => {
                console.error('Failed to clear cookies: ', error);
            });
    

    它支持更复杂的请求。您可以查看文档here

    【讨论】:

      【解决方案2】:

      您可以使用 Electron 的 cookies.remove() 函数 (https://electron.atom.io/docs/api/cookies/#cookiesremoveurl-name-callback) 删除 cookie

      诀窍是将cookie.domain 转换为url

      import { session } from 'electron';
      
      export default function deleteAllCookies() {
        session.defaultSession.cookies.get({}, (error, cookies) => {
          cookies.forEach((cookie) => {
            let url = '';
            // get prefix, like https://www.
            url += cookie.secure ? 'https://' : 'http://';
            url += cookie.domain.charAt(0) === '.' ? 'www' : '';
            // append domain and path
            url += cookie.domain;
            url += cookie.path;
      
            session.defaultSession.cookies.remove(url, cookie.name, (error) => {
              if (error) console.log(`error removing cookie ${cookie.name}`, error);
            });
          });
        });
      }
      

      【讨论】:

        猜你喜欢
        • 2020-12-27
        • 2021-10-30
        • 1970-01-01
        • 1970-01-01
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        • 2011-03-13
        • 1970-01-01
        相关资源
        最近更新 更多