我目前正在尝试从 python 请求中解析我的会话 cookie 并将它们发送到我的 chrome 扩展。我遇到了一些更复杂的 cookie 的问题,比如这个:
我的 python 代码如下所示:
cookieStr = ''
cookies = [
{'name': c.name, 'value': c.value, 'domain': c.domain, 'path': c.path, 'url': ''} for c in cookiesGet]
for cookie in cookies:
if cookie['domain'][0] == ".":
cookie['url'] = cookie['domain'][1:]
else:
cookie['url'] = cookie['domain']
cookie['url'] = "https://"+cookie['url']
cookies = json.dumps(cookies)
print(cookies)
cookieStr = urllib.parse.quote(base64.b64encode(bytes(cookies, 'utf-8')).decode())
if not cookieStr:
print('')
url = urllib.parse.quote(base64.b64encode(bytes(redirectUrl, 'utf-8')).decode())
当然,扩展 JS 代码如下所示:
function setCookie(cookieName, cookieDomain, cookieUrl, cookieVal) {
// console.log(cookieName,cookieDomain, cookieVal,cookieUrl);
chrome.cookies.set({
"name": cookieName,
"domain": cookieDomain,
"url": cookieUrl,
"value": cookieVal
}, function (cookie) {
console.log(JSON.stringify(cookie));
console.log(chrome.extension.lastError);
console.log(chrome.runtime.lastError);
});
}
function parseCookie(cookie) {
setCookie(cookie['name'], cookie['domain'], cookie['url'], cookie['value']);
}
function init() {
......
.....
var cookieStr = decodeURIComponent(url.searchParams.get("cookie"))//.replace(" ", "+");
cookieStr = atob(cookieStr);
console.log(cookieStr);
var cookies = JSON.parse(cookieStr);
var redirect = atob(url.searchParams.get("redirect").toString());
for (var cookie of cookies) {
parseCookie(cookie)
}

