0

我在电子桌面应用程序中使用oauth(堆栈溢出),并且存在加载oauth url的webview。我在我的应用程序中有一个注销按钮,它将从Stack Overflow网站以及应用程序中注销用户。我怎样才能做到这一点 ?删除Electron桌面应用程序中的所有Cookie

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

回答

0

可以使用电子的cookies.remove()功能(https://electron.atom.io/docs/api/cookies/#cookiesremoveurl-name-callback

诀窍是cookie.domain转化为url删除的cookie。

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