我现在正在开发一个基于existing chrome plugin的跨浏览器扩展。
作为隐私概念和登录过程的一部分,我需要手动设置和删除一些cookie。在Chrome中,我执行以下步骤:
chrome.cookies.set({"url":"https://protonmail.ch/","domain":".protonmail.ch","path":"/","expirationDate": expire,"secure":true,"name":"protonmail_pw","value":"true"}, function (cookie){
//continue
});
chrome.cookies.getAll({"domain":".protonmail.ch"}, function(cookies) {
for(var i=0; i<cookies.length;i++) {
chrome.cookies.remove({'url': "http" + (cookies[i].secure ? "s" : "") + "://" + cookies[i].domain + cookies[i].path, name: cookies[i].name});
}
});如何使用crossrider重建此行为?我找不到任何关于cookie操作的文档!
提前致以最诚意的问候和感谢
发布于 2015-07-15 14:55:18
Crossrider支持使用其本地数据库appAPI.db.async来存储数据;因此,您的代码可以按如下方式移植:
appAPI.db.async.set(
"protonmail_pw",
{
"url": "https://protonmail.ch/",
"domain": "protonmail.ch",
"path": "/",
"secure": true,
"value": "true"
},
appAPI.time.hoursFromNow(12), // Set the expiration as required
function() {
//continue
}
);
appAPI.db.async.getList(function(cookies) {
for (var i = 0; i < cookies.length; i++) {
if (cookies[i].value.domain==="protonmail.ch" &&
cookies[i].value.url==="http" + (cookies[i].value.secure ? "s" : "") + "://" + cookies[i].value.domain + cookies[i].value.path)
appAPI.db.async.remove(cookies[i].key);
}
});
// Example request
appAPI.db.async.get(
"protonmail_pw",
function(value) {
appAPI.request.post({
url: 'http://example.com',
postData: {
data: {},
cookie: value
},
onSuccess: function(response) {
console.log('Response: ' + response);
},
contentType: 'application/json'
});
}
);更新:将示例请求添加到示例
披露:我是一名Crossrider员工
https://stackoverflow.com/questions/31408894
复制相似问题