Mô tả
Sử dụng API chrome.cookies để truy vấn và sửa đổi cookie, cũng như nhận thông báo khi cookie thay đổi.
Quyền
cookiesTệp kê khai
Để sử dụng API cookie, bạn phải khai báo quyền "cookie" trong tệp kê khai, cùng với quyền của máy chủ lưu trữ cho mọi máy chủ lưu trữ mà bạn muốn truy cập vào cookie. Ví dụ:
{
  "name": "My extension",
  ...
  "host_permissions": [
    "*://*.google.com/"
  ],
  "permissions": [
    "cookies"
  ],
  ...
}
Phân vùng
Cookie được phân vùng cho phép một trang web đánh dấu rằng một số cookie nhất định phải được khoá theo nguồn gốc của khung cấp cao nhất. Điều này có nghĩa là nếu trang web A được nhúng bằng iframe trong trang web B và trang web C, thì cookie được phân vùng có thể có một giá trị khác nhau trong mỗi trang web.
chrome.cookies không hỗ trợ phân vùng, tức là tất cả các phương thức đều đọc và ghi cookie từ tất cả các phân vùng. Phương thức cookies.set() lưu trữ cookie trong phân vùng mặc định.
Để biết thông tin chi tiết về tác động chung của việc phân vùng đối với các tiện ích, hãy xem bài viết Bộ nhớ và cookie.
Ví dụ
Bạn có thể xem một ví dụ đơn giản về cách sử dụng API cookie trong thư mục examples/api/cookies. Để xem các ví dụ khác và được trợ giúp xem mã nguồn, hãy xem phần Mẫu.
Loại
Cookie
Biểu thị thông tin về một cookie HTTP.
Thuộc tính
- 
    tên miềnchuỗi Miền của cookie (ví dụ: "www.google.com", "example.com"). 
- 
    expirationDatenumber không bắt buộc Ngày hết hạn của cookie dưới dạng số giây kể từ thời gian bắt đầu của hệ thống UNIX. Không được cung cấp cho cookie phiên. 
- 
    hostOnlyboolean True nếu cookie chỉ dành cho máy chủ lưu trữ (tức là máy chủ lưu trữ của yêu cầu phải khớp chính xác với miền của cookie). 
- 
    httpOnlyboolean True nếu cookie được đánh dấu là HttpOnly (tức là các tập lệnh phía máy khách không truy cập được vào cookie). 
- 
    tênchuỗi Tên của cookie. 
- 
    partitionKeyCookiePartitionKey không bắt buộc Chrome 119 trở lênKhoá phân vùng để đọc hoặc sửa đổi cookie bằng thuộc tính Partitioned. 
- 
    đường dẫnchuỗi Đường dẫn của cookie. 
- 
    sameSiteChrome 51 trở lênTrạng thái same-site của cookie (tức là cookie có được gửi cùng với các yêu cầu trên nhiều trang web hay không). 
- 
    bảo mậtboolean True nếu cookie được đánh dấu là Bảo mật (tức là phạm vi của cookie bị giới hạn ở các kênh bảo mật, thường là HTTPS). 
- 
    phiênboolean True nếu cookie là cookie phiên, thay vì cookie liên tục có ngày hết hạn. 
- 
    storeIdchuỗi Mã nhận dạng của kho cookie chứa cookie này, như được cung cấp trong getAllCookieStores(). 
- 
    valuechuỗi Giá trị của cookie. 
CookieDetails
Thông tin chi tiết để xác định cookie.
Thuộc tính
- 
    tênchuỗi Tên của cookie cần truy cập. 
- 
    partitionKeyCookiePartitionKey không bắt buộc Chrome 119 trở lênKhoá phân vùng để đọc hoặc sửa đổi cookie bằng thuộc tính Partitioned. 
- 
    storeIdchuỗi không bắt buộc Mã nhận dạng của kho cookie để tìm cookie. Theo mặc định, kho cookie của bối cảnh thực thi hiện tại sẽ được sử dụng. 
- 
    urlchuỗi URL mà cookie được liên kết để truy cập. Đối số này có thể là một URL đầy đủ. Trong trường hợp đó, mọi dữ liệu theo đường dẫn URL (ví dụ: chuỗi truy vấn) sẽ bị bỏ qua. Nếu bạn không chỉ định quyền của máy chủ lưu trữ cho URL này trong tệp kê khai, thì lệnh gọi API sẽ không thành công. 
CookiePartitionKey
Đại diện cho khoá phân vùng của cookie được phân vùng.
Thuộc tính
- 
    hasCrossSiteAncestorboolean không bắt buộc Chrome 130 trở lênCho biết liệu cookie có được đặt trong bối cảnh trên nhiều trang web hay không. Điều này ngăn một trang web cấp cao nhất được nhúng trong bối cảnh liên trang truy cập vào cookie do trang web cấp cao nhất đặt trong bối cảnh cùng trang. 
- 
    topLevelSitechuỗi không bắt buộc Trang web cấp cao nhất mà cookie được phân vùng có sẵn. 
CookieStore
Biểu thị một kho cookie trong trình duyệt. Ví dụ: cửa sổ ở chế độ ẩn danh sử dụng một kho cookie riêng biệt so với cửa sổ không ở chế độ ẩn danh.
Thuộc tính
- 
    idchuỗi Giá trị nhận dạng riêng biệt của kho lưu trữ cookie. 
- 
    tabIdsnumber[] Giá trị nhận dạng của tất cả các thẻ trình duyệt dùng chung kho cookie này. 
FrameDetails
Thông tin chi tiết để xác định khung hình.
Thuộc tính
- 
    documentIdchuỗi không bắt buộc Giá trị nhận dạng duy nhất của tài liệu. Nếu bạn cung cấp frameId và/hoặc tabId, thì các giá trị này sẽ được xác thực để khớp với tài liệu mà bạn tìm thấy theo mã nhận dạng tài liệu đã cung cấp. 
- 
    frameIdnumber không bắt buộc Giá trị nhận dạng duy nhất của khung trong thẻ. 
- 
    tabIdnumber không bắt buộc Giá trị nhận dạng duy nhất của thẻ chứa khung. 
OnChangedCause
Lý do cơ bản dẫn đến sự thay đổi của cookie. Nếu một cookie được chèn hoặc xoá thông qua một lệnh gọi rõ ràng đến "chrome.cookies.remove", thì "cause" sẽ là "explicit". Nếu một cookie tự động bị xoá do hết hạn, thì "nguyên nhân" sẽ là "hết hạn". Nếu một cookie bị xoá do bị ghi đè bằng ngày hết hạn đã hết, thì "cause" sẽ được đặt thành "expired_overwrite". Nếu một cookie tự động bị xoá do quá trình thu thập rác, thì "cause" sẽ là "evicted". Nếu một cookie bị xoá tự động do lệnh gọi "set" ghi đè cookie đó, thì "cause" sẽ là "overwrite". Lập kế hoạch phản hồi cho phù hợp.
Enum
"evicted" 
 
"expired" 
 
"explicit" 
 
"expired_overwrite" 
 
"overwrite" 
 
SameSiteStatus
Trạng thái "SameSite" của cookie (https://tools.ietf.org/html/draft-west-first-party-cookies). "no_restriction" tương ứng với cookie được đặt bằng "SameSite=None", "lax" tương ứng với "SameSite=Lax" và "strict" tương ứng với "SameSite=Strict". "unspecified" tương ứng với một cookie được đặt mà không có thuộc tính SameSite.
Enum
"no_restriction" 
 
"lax" 
 
"strict" 
 
"unspecified" 
 
Phương thức
get()
chrome.cookies.get(
details: CookieDetails,
callback?: function,
): Promise<Cookie | undefined>
Truy xuất thông tin về một cookie duy nhất. Nếu có nhiều cookie cùng tên cho một URL nhất định, thì cookie có đường dẫn dài nhất sẽ được trả về. Đối với các cookie có cùng độ dài đường dẫn, cookie có thời gian tạo sớm nhất sẽ được trả về.
Thông số
Giá trị trả về
- 
            Promise<Cookie | undefined> Chrome 88 trở lênCác promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại. 
getAll()
chrome.cookies.getAll(
details: object,
callback?: function,
): Promise<Cookie[]>
Truy xuất tất cả cookie từ một kho cookie duy nhất khớp với thông tin đã cho. Các cookie được trả về sẽ được sắp xếp, trong đó những cookie có đường dẫn dài nhất sẽ xuất hiện trước. Nếu nhiều cookie có cùng độ dài đường dẫn, thì những cookie có thời gian tạo sớm nhất sẽ được ưu tiên. Phương thức này chỉ truy xuất cookie cho những miền mà tiện ích có quyền truy cập vào máy chủ.
Thông số
- 
    chi tiếtđối tượng Thông tin để lọc các cookie đang được truy xuất. - 
    tên miềnchuỗi không bắt buộc Hạn chế các cookie đã truy xuất đối với những cookie có miền khớp hoặc là miền con của miền này. 
- 
    tênchuỗi không bắt buộc Lọc cookie theo tên. 
- 
    partitionKeyCookiePartitionKey không bắt buộc Chrome 119 trở lênKhoá phân vùng để đọc hoặc sửa đổi cookie bằng thuộc tính Partitioned. 
- 
    đường dẫnchuỗi không bắt buộc Giới hạn các cookie đã truy xuất chỉ cho những cookie có đường dẫn khớp chính xác với chuỗi này. 
- 
    bảo mậtboolean không bắt buộc Lọc cookie theo thuộc tính Bảo mật. 
- 
    phiênboolean không bắt buộc Lọc cookie theo phiên so với cookie cố định. 
- 
    storeIdchuỗi không bắt buộc Kho cookie để truy xuất cookie. Nếu bỏ qua, kho cookie của bối cảnh thực thi hiện tại sẽ được sử dụng. 
- 
    urlchuỗi không bắt buộc Hạn chế các cookie đã truy xuất đối với những cookie khớp với URL đã cho. 
 
- 
    
- 
    callbackhàm không bắt buộc Tham số callbackcó dạng như sau:(cookies: Cookie[]) => void - 
    cookieCookie[] Tất cả cookie hiện có, chưa hết hạn khớp với thông tin cookie đã cho. 
 
- 
    
Giá trị trả về
- 
            Promise<Cookie[]> Chrome 88 trở lênCác promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại. 
getAllCookieStores()
chrome.cookies.getAllCookieStores(
callback?: function,
): Promise<CookieStore[]>
Liệt kê tất cả các kho lưu trữ cookie hiện có.
Thông số
- 
    callbackhàm không bắt buộc Tham số callbackcó dạng như sau:(cookieStores: CookieStore[]) => void - 
    cookieStoresTất cả các kho lưu trữ cookie hiện có. 
 
- 
    
Giá trị trả về
- 
            Promise<CookieStore[]> Chrome 88 trở lênCác promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại. 
getPartitionKey()
chrome.cookies.getPartitionKey(
details: FrameDetails,
callback?: function,
): Promise<object>
Khoá phân vùng cho khung được chỉ ra.
Thông số
- 
    chi tiết
- 
    callbackhàm không bắt buộc Tham số callbackcó dạng như sau:(details: object) => void - 
    chi tiếtđối tượng Chứa thông tin chi tiết về khoá phân vùng đã được truy xuất. - 
    partitionKeyKhoá phân vùng để đọc hoặc sửa đổi cookie bằng thuộc tính Partitioned. 
 
- 
    
 
- 
    
Giá trị trả về
- 
            Promise<object> Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại. 
remove()
chrome.cookies.remove(
details: CookieDetails,
callback?: function,
): Promise<object | undefined>
Xoá một cookie theo tên.
Thông số
- 
    chi tiết
- 
    callbackhàm không bắt buộc Tham số callbackcó dạng như sau:(details?: object) => void - 
    chi tiếtđối tượng không bắt buộc Chứa thông tin chi tiết về cookie đã bị xoá. Nếu quá trình xoá không thành công vì bất kỳ lý do nào, giá trị này sẽ là "null" và runtime.lastErrorsẽ được đặt.- 
    tênchuỗi Tên của cookie đã bị xoá. 
- 
    partitionKeyCookiePartitionKey không bắt buộc Chrome 119 trở lênKhoá phân vùng để đọc hoặc sửa đổi cookie bằng thuộc tính Partitioned. 
- 
    storeIdchuỗi Mã nhận dạng của kho lưu trữ cookie mà cookie đã bị xoá. 
- 
    urlchuỗi URL liên kết với cookie đã bị xoá. 
 
- 
    
 
- 
    
Giá trị trả về
- 
            Promise<object | undefined> Chrome 88 trở lênCác promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại. 
set()
chrome.cookies.set(
details: object,
callback?: function,
): Promise<Cookie | undefined>
Đặt một cookie bằng dữ liệu cookie đã cho; có thể ghi đè các cookie tương đương nếu chúng tồn tại.
Thông số
- 
    chi tiếtđối tượng Thông tin chi tiết về cookie đang được đặt. - 
    tên miềnchuỗi không bắt buộc Miền của cookie. Nếu bạn bỏ qua, cookie sẽ trở thành cookie chỉ dành cho máy chủ lưu trữ. 
- 
    expirationDatenumber không bắt buộc Ngày hết hạn của cookie dưới dạng số giây kể từ thời gian bắt đầu của hệ thống UNIX. Nếu bạn bỏ qua, cookie sẽ trở thành cookie phiên. 
- 
    httpOnlyboolean không bắt buộc Cookie có được đánh dấu là HttpOnly hay không. Giá trị mặc định là false. 
- 
    tênchuỗi không bắt buộc Tên của cookie. Để trống theo mặc định nếu bị bỏ qua. 
- 
    partitionKeyCookiePartitionKey không bắt buộc Chrome 119 trở lênKhoá phân vùng để đọc hoặc sửa đổi cookie bằng thuộc tính Partitioned. 
- 
    đường dẫnchuỗi không bắt buộc Đường dẫn của cookie. Giá trị mặc định là phần đường dẫn của tham số url. 
- 
    sameSiteSameSiteStatus không bắt buộc Chrome 51 trở lênTrạng thái cùng trang web của cookie. Mặc định là "unspecified", tức là nếu bị bỏ qua, cookie sẽ được đặt mà không chỉ định thuộc tính SameSite. 
- 
    bảo mậtboolean không bắt buộc Liệu cookie có nên được đánh dấu là Bảo mật hay không. Giá trị mặc định là false. 
- 
    storeIdchuỗi không bắt buộc Mã nhận dạng của kho cookie mà bạn muốn đặt cookie. Theo mặc định, cookie được đặt trong kho cookie của bối cảnh thực thi hiện tại. 
- 
    urlchuỗi request-URI để liên kết với chế độ cài đặt cookie. Giá trị này có thể ảnh hưởng đến các giá trị mặc định của miền và đường dẫn của cookie được tạo. Nếu bạn không chỉ định quyền của máy chủ lưu trữ cho URL này trong tệp kê khai, thì lệnh gọi API sẽ không thành công. 
- 
    valuechuỗi không bắt buộc Giá trị của cookie. Để trống theo mặc định nếu bị bỏ qua. 
 
- 
    
- 
    callbackhàm không bắt buộc Tham số callbackcó dạng như sau:(cookie?: Cookie) => void - 
    bánh quyCookie không bắt buộc Chứa thông tin chi tiết về cookie đã được đặt. Nếu không đặt được vì bất kỳ lý do nào, thì giá trị này sẽ là "null" và runtime.lastErrorsẽ được đặt.
 
- 
    
Giá trị trả về
- 
            Promise<Cookie | undefined> Chrome 88 trở lênCác promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại. 
Sự kiện
onChanged
chrome.cookies.onChanged.addListener(
callback: function,
)
Kích hoạt khi một cookie được đặt hoặc xoá. Trong trường hợp đặc biệt, xin lưu ý rằng việc cập nhật các thuộc tính của cookie được triển khai dưới dạng quy trình gồm 2 bước: trước tiên, cookie cần cập nhật sẽ bị xoá hoàn toàn, tạo ra một thông báo có "nguyên nhân" là "ghi đè" . Sau đó, một cookie mới sẽ được ghi bằng các giá trị đã cập nhật, tạo ra thông báo thứ hai với "cause" (nguyên nhân) là "explicit" (rõ ràng).
Thông số
- 
    callbackhàm Tham số callbackcó dạng như sau:(changeInfo: object) => void - 
    changeInfođối tượng - 
    nguyên nhânLý do cơ bản dẫn đến sự thay đổi của cookie. 
- 
    bánh quyThông tin về cookie đã được đặt hoặc xoá. 
- 
    đã xóaboolean Đúng nếu một cookie đã bị xoá. 
 
- 
    
 
-