chrome扩展cookie使用

要使用cookies API, 你必须在你的清单中声明"cookies"权限,以及任何你希望cookie可以访问的主机权限。例如:

{

    "name": "My extension",

    ...

    "permissions": [

        "cookies"

    ],

    ...

}
setCookies: function(url, name, value, expireSecond) {
    //var exdate = new Date();
    var param = {
        url : url,
        name : name,
        value : value,
        path: '/'
    };
    if (!!expireSecond) {
        param.expirationDate = new Date().getTime() / 1000 + expireSecond;
    }
    chrome.cookies.set(param, function(cookie) {});
}

chrome.cookies.set(object details)
用给定数据设置一个cookie。如果相同的cookie存在,它们可能会被覆盖。

param是待设置cookie的详细信息。
url ( string )
与待设置cookie相关的URL。该值影响所创建cookie的默认域名与路径值。如果清单文件中没有设置这个URL对应的主机权限,那么这个API调用会失败。
name ( optional string )
cookie名称,默认为空值。
value ( optional string )
cookie的值,默认为空值。
domain ( optional string )
cookie的域名。如果未指定,则该cookie是host-only cookie。
path ( optional string )
cookie的路径。默认是url参数的路径部分。
secure ( optional boolean )
是否cookie标记为保密。默认为false。
httpOnly ( optional boolean )
是否cookie被标记为HttpOnly。默认为false。
expirationDate ( optional number )
cookie的过期时间,用从UNIX epoch开始计的秒数表示。如果未指定,该cookie是一个会话cookie。
storeId ( optional string )
用于保存该cookie的存储id。默认情况下,当前执行上下文的cookie存储将被使用。

 

  getCookies: function(url, key, callback, isAutoDelay, params) {
        chrome.cookies.get({
            url : url,
            name : key
        }, function(cookies) {
            if (cookies && cookies.value && isAutoDelay) {
                //自动延长cookie时间
                Gome.Cookie.setCookies(url, key, cookies.value, Gome.Constant.COOKIE.EXPIRE);
            }
            if (params) {
                callback(cookies, params);
            } else {
                callback(cookies);
            }
        });
    }

chrome.cookies.get(object details, function callback)
获取一个cookie的信息。如果对于给定的URL有多个cookie存在,将返回对应于最长路径的cookie。对于路径长度相同的cookies,将返回最早创建的cookie。

参数
details ( object对象 )
用于识别所收到的cookie的详细信息。
url ( string字符串 )
与所收到的cookie关联的URL。这个参数可以是一个完整的URL,这时候所有跟随在URL上的数据(比如查询字符串)将被忽略。如果清单文件中没有设置这个URL对应的主机权限,那么这个API调用会失败。
name ( string字符串 )
收到的cookie名字。
storeId ( optional string可选,字符串 )
cookie的存储id,用于从中检索cookie。默认情况下,当前执行上下文的cookie存储将被使用。
callback ( function 函数 )
回调函数
如果指定了回调参数,它应该指定一个如下所示函数:

function(Cookie cookie) {...};
cookie ( optional Cookie ) (可选,Cookie)
包含cookie的详细信息。如果没找到cookie,该参数为null。

 removeCookies: function(url, key, callback) {
        chrome.cookies.remove({
            url : url,
            name : key
        }, function (cookies) {
            callback(cookies);
        });
    }

 

chrome.cookies.remove(object details)
根据名称删除cookie。

参数
details ( object )
用于鉴定待删除cookie的信息。
url ( string )
与所收到的cookie关联的URL。如果清单文件中没有设置这个URL对应的主机权限,那么这个API调用会失败。
name ( string )
待删除cookie的名称。
storeId ( optional string )
cookie的存储id,用于从中检索cookie。默认情况下,当前执行上下文的cookie存储将被使用。

事件
onChanged
chrome.cookies.onChanged.addListener(function(object changeInfo) {...});
当一个cookie被设置或者删除时候触发。

参数
changeInfo ( object )
removed ( boolean )
True表示一个cookie被删除。
cookie ( Cookie )
被设置或者删除的cookie的信息。
类型
Cookie
( object )
表示一个HTTP cookie的信息。
name ( string )
cookie名称。
value ( string )
cookie值。
domain ( string )
cookie的域名。(例如 "www.google.com", "example.com").
hostOnly ( boolean )
True表示cookie是一个host-only cookie (例如,一个检索的主机必须与cookie的域名完全一致)。
path ( string )
cookie的路径。
secure ( boolean )
True表示cookie被标记为保密。(例如,它的有效范围被限制于加密频道,最典型是HTTPS).
httpOnly ( boolean )
True表示cookie被标记为HttpOnly (例如cookie在客户端的脚本无法访问)。
session ( boolean )
True表示cookie是线程cookie,与有过期时间的持久cookie相对应。
expirationDate ( optional number )
cookie的过期时间,用从UNIX epoch(00:00:00 UTC on 1 January 1970)开始计的秒数表示。会话cookie没有该属性。
storeId ( string )
包含该cookie的存储id,可通过getAllCookieStores()获取。

 

发布了161 篇原创文章 · 获赞 154 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/zhangying1994/article/details/88375123