Javascript có thể đặt tên miền cookie không?

👉👉Nếu bạn đang xem tại https. //github. com/js-cookie/js-cookie, bạn đang đọc tài liệu về nhánh chính. Xem tài liệu cho bản phát hành mới nhất. 👈👈

Cài đặt

NPM

JavaScript Cookie hỗ trợ npm dưới tên


5

$ npm i js-cookie

Gói npm có trường


6 trỏ đến biến thể mô-đun ES của thư viện, chủ yếu để cung cấp hỗ trợ cho các gói nhận biết mô-đun ES, trong khi trường

7 của nó trỏ đến mô-đun UMD để tương thích ngược hoàn toàn

Tải trực tiếp

Bắt đầu với các bản phát hành phiên bản 3 được phân phối với hai biến thể của thư viện này, mô-đun ES cũng như mô-đun UMD

Lưu ý các phần mở rộng khác nhau.


8 biểu thị mô-đun ES, trong khi

9 là mô-đun UMD

Ví dụ về cách tải mô-đun ES trong trình duyệt



  import Cookies from '/path/to/js.cookie.mjs'

  Cookies.set['foo', 'bar']

Không phải tất cả các trình duyệt đều hỗ trợ các mô-đun ES nguyên bản. Vì lý do này, gói/bản phát hành npm cung cấp cả biến thể mô-đun ES và UMD và bạn có thể muốn đưa mô-đun ES cùng với dự phòng UMD vào tài khoản này


Ở đây, chúng tôi đang tải tập lệnh nomodule theo kiểu hoãn lại, vì các mô-đun ES được hoãn lại theo mặc định. Điều này có thể không thực sự cần thiết tùy thuộc vào cách bạn đang sử dụng thư viện

CDN

Ngoài ra, hãy đưa nó qua jsDelivr CDN

Mô-đun ES

Ví dụ về cách nhập mô-đun ES từ mô-đun khác

________số 8

Sử dụng cơ bản

Tạo một cookie, hợp lệ trên toàn bộ trang web

Cookies.set['name', 'value']

Tạo cookie hết hạn sau 7 ngày kể từ bây giờ, hợp lệ trên toàn bộ trang web

$ npm i js-cookie
0

Tạo một cookie hết hạn, hợp lệ với đường dẫn của trang hiện tại

$ npm i js-cookie
1

Đọc cookie

$ npm i js-cookie
2

Đọc tất cả các cookie có thể nhìn thấy

$ npm i js-cookie
3

Ghi chú. Không thể đọc một cookie cụ thể bằng cách chuyển một trong các thuộc tính cookie [có thể hoặc không được sử dụng khi viết cookie được đề cập]

$ npm i js-cookie
4

Cookie có tên

import Cookies from 'js-cookie'

Cookies.set['foo', 'bar']
0 sẽ chỉ khả dụng trên
import Cookies from 'js-cookie'

Cookies.set['foo', 'bar']
1 nếu nó có thể nhìn thấy từ nơi mã được gọi;

Xóa cookie



  import Cookies from '/path/to/js.cookie.mjs'

  Cookies.set['foo', 'bar']
0

Xóa cookie hợp lệ với đường dẫn của trang hiện tại



  import Cookies from '/path/to/js.cookie.mjs'

  Cookies.set['foo', 'bar']
1

QUAN TRỌNG. Khi xóa cookie và bạn không dựa vào các thuộc tính mặc định, bạn phải chuyển chính xác các thuộc tính miền và đường dẫn đã được sử dụng để đặt cookie



  import Cookies from '/path/to/js.cookie.mjs'

  Cookies.set['foo', 'bar']
2

Ghi chú. Xóa cookie không tồn tại sẽ không làm tăng bất kỳ ngoại lệ nào cũng như không trả lại bất kỳ giá trị nào

Xung đột không gian tên

Nếu có nguy cơ xung đột với không gian tên

import Cookies from 'js-cookie'

Cookies.set['foo', 'bar']
2, phương thức
import Cookies from 'js-cookie'

Cookies.set['foo', 'bar']
3 sẽ cho phép bạn xác định một không gian tên mới và giữ nguyên không gian ban đầu. Điều này đặc biệt hữu ích khi chạy tập lệnh trên các trang web của bên thứ ba e. g. như một phần của widget hoặc SDK



  import Cookies from '/path/to/js.cookie.mjs'

  Cookies.set['foo', 'bar']
3

Ghi chú. Phương pháp

import Cookies from 'js-cookie'

Cookies.set['foo', 'bar']
4 không cần thiết khi sử dụng AMD hoặc CommonJS, do đó nó không được hiển thị trong các môi trường đó

mã hóa

Dự án này tuân thủ RFC 6265. Tất cả các ký tự đặc biệt không được phép trong tên cookie hoặc giá trị cookie được mã hóa bằng UTF-8 Hex tương đương của từng ký tự bằng cách sử dụng mã hóa phần trăm.
Ký tự duy nhất trong tên cookie hoặc giá trị cookie được cho phép và vẫn được mã hóa là ký tự phần trăm

import Cookies from 'js-cookie'

Cookies.set['foo', 'bar']
5, ký tự này được thoát để diễn giải đầu vào phần trăm dưới dạng chữ.
Xin lưu ý rằng chiến lược mã hóa/giải mã mặc định chỉ có thể tương tác giữa các cookie được đọc/ghi bởi js-cookie. Để ghi đè chiến lược mã hóa/giải mã mặc định, bạn cần sử dụng trình chuyển đổi.

Ghi chú. Theo RFC 6265, cookie của bạn có thể bị xóa nếu chúng quá lớn hoặc có quá nhiều cookie trong cùng một miền, thông tin chi tiết tại đây

Thuộc tính cookie

Giá trị mặc định của thuộc tính cookie có thể được đặt trên toàn cầu bằng cách tạo một phiên bản của api qua

import Cookies from 'js-cookie'

Cookies.set['foo', 'bar']
6 hoặc riêng lẻ cho mỗi lệnh gọi tới
import Cookies from 'js-cookie'

Cookies.set['foo', 'bar']
7 bằng cách chuyển một đối tượng đơn giản làm đối số cuối cùng. Thuộc tính mỗi cuộc gọi sẽ ghi đè thuộc tính mặc định

hết hạn

Xác định thời điểm cookie sẽ bị xóa. Giá trị phải là một

import Cookies from 'js-cookie'

Cookies.set['foo', 'bar']
8 sẽ được hiểu là số ngày kể từ thời điểm tạo hoặc một phiên bản
import Cookies from 'js-cookie'

Cookies.set['foo', 'bar']
9. Nếu bị bỏ qua, cookie sẽ trở thành cookie phiên

Để tạo cookie hết hạn sau chưa đầy một ngày, bạn có thể kiểm tra Câu hỏi thường gặp trên Wiki

Mặc định. Cookie bị xóa khi người dùng đóng trình duyệt

ví dụ



  import Cookies from '/path/to/js.cookie.mjs'

  Cookies.set['foo', 'bar']
4

đường dẫn

Một

Cookies.set['name', 'value']
0 cho biết đường dẫn hiển thị cookie

Mặc định.

Cookies.set['name', 'value']
1

ví dụ



  import Cookies from '/path/to/js.cookie.mjs'

  Cookies.set['foo', 'bar']
5

Lưu ý về Internet Explorer

Do một lỗi khó hiểu trong quá trình triển khai WinINET InternetGetCookie cơ bản, tài liệu của IE. cookie sẽ không trả về cookie nếu nó được đặt với thuộc tính đường dẫn chứa tên tệp

[Từ Nội bộ Cookie của Internet Explorer [Câu hỏi thường gặp]]

Điều này có nghĩa là người ta không thể đặt đường dẫn bằng cách sử dụng

Cookies.set['name', 'value']
2 trong trường hợp tên đường dẫn đó chứa tên tệp như vậy.
Cookies.set['name', 'value']
3 [hoặc ít nhất, cookie đó không thể được đọc chính xác]

Trên thực tế, bạn không bao giờ nên cho phép đầu vào không đáng tin cậy đặt các thuộc tính cookie, nếu không bạn có thể bị tấn công XSS

miền

Một

Cookies.set['name', 'value']
0 cho biết một miền hợp lệ nơi cookie sẽ hiển thị. Cookie cũng sẽ hiển thị với tất cả các tên miền phụ

Mặc định. Cookie chỉ hiển thị với tên miền hoặc tên miền phụ của trang nơi cookie được tạo, ngoại trừ Internet Explorer [xem bên dưới]

ví dụ

Giả sử một cookie đang được tạo trên

Cookies.set['name', 'value']
5



  import Cookies from '/path/to/js.cookie.mjs'

  Cookies.set['foo', 'bar']
6

Lưu ý về hành vi mặc định của Internet Explorer

Q3. Nếu tôi không chỉ định thuộc tính DOMAIN [cho] một cookie, thì IE vẫn gửi nó tới tất cả các miền con lồng nhau?
A. Có, ví dụ về bộ cookie. com sẽ được gửi đến sub2. phụ1. thí dụ. com.
Internet Explorer khác với các trình duyệt khác ở điểm này.

[Từ Nội bộ Cookie của Internet Explorer [Câu hỏi thường gặp]]

Điều này có nghĩa là nếu bạn bỏ qua thuộc tính

Cookies.set['name', 'value']
6, nó sẽ hiển thị cho tên miền phụ trong IE

chắc chắn

Cookies.set['name', 'value']
7 hoặc
Cookies.set['name', 'value']
8, cho biết liệu việc truyền cookie có yêu cầu giao thức bảo mật [https] hay không

Mặc định. Không yêu cầu giao thức an toàn

ví dụ



  import Cookies from '/path/to/js.cookie.mjs'

  Cookies.set['foo', 'bar']
7

cùngSite

Một

Cookies.set['name', 'value']
0, cho phép kiểm soát xem trình duyệt có gửi cookie cùng với các yêu cầu trên nhiều trang hay không

Mặc định. không được thiết lập

Lưu ý rằng các trình duyệt gần đây hơn đang biến "Lax" thành giá trị mặc định ngay cả khi không chỉ định bất kỳ điều gì ở đây

ví dụ



  import Cookies from '/path/to/js.cookie.mjs'

  Cookies.set['foo', 'bar']
8

Thiết lập mặc định



  import Cookies from '/path/to/js.cookie.mjs'

  Cookies.set['foo', 'bar']
9

bộ chuyển đổi

Đọc

Tạo một phiên bản mới của api sẽ ghi đè triển khai giải mã mặc định. Tất cả các phương thức get dựa vào giải mã phù hợp để hoạt động, chẳng hạn như

$ npm i js-cookie
00 và
$ npm i js-cookie
01, sẽ chạy trình chuyển đổi đã cho cho mỗi cookie. Giá trị được trả về sẽ được sử dụng làm giá trị cookie

Ví dụ từ việc đọc một trong các cookie chỉ có thể được giải mã bằng hàm

$ npm i js-cookie
02


0

Viết

Tạo một phiên bản mới của api ghi đè triển khai mã hóa mặc định


1

Khai báo TypeScript


2

Tích hợp phía máy chủ

Kiểm tra tài liệu máy chủ

Đóng góp

Kiểm tra Nguyên tắc đóng góp

Bảo vệ

Đối với các báo cáo lỗ hổng, hãy gửi e-mail tới

$ npm i js-cookie
03

phát hành

Chúng tôi đang sử dụng release-it để phát hành tự động

Bắt đầu chạy khô để xem điều gì sẽ xảy ra


3

Thực hiện một bản phát hành thực sự [xuất bản cả lên npm cũng như tạo một bản phát hành mới trên GitHub]


4

Bản phát hành GitHub được tạo dưới dạng bản nháp và cần được xuất bản thủ công. [Điều này là để chúng tôi có thể tạo ghi chú phát hành phù hợp trước khi xuất bản. ]

Bạn có thể đặt tên miền trong cookie không?

Không cho phép nhiều giá trị máy chủ lưu trữ/miền , nhưng nếu một miền được chỉ định thì miền phụ luôn được bao gồm. Cho biết đường dẫn phải tồn tại trong URL được yêu cầu để trình duyệt gửi tiêu đề Cookie.

Bạn có thể đặt cookie bằng JavaScript không?

Tạo Cookie bằng JavaScript . JavaScript can create, read, and delete cookies with the document. thuộc tính cookie. Với JavaScript, một cookie có thể được tạo như thế này. tài liệu. cookie = "tên người dùng=John Doe"; .

JavaScript có thể truy cập cookie từ miền khác không?

Không có cách nào để cho phép truy cập cookie từ một tên miền cấp 2 khác , vì vậy khác. com sẽ không bao giờ nhận được bộ cookie tại trang web. com. Đó là một hạn chế về an toàn, để cho phép chúng tôi lưu trữ dữ liệu nhạy cảm trong cookie chỉ khả dụng trên một trang web. Theo mặc định, cookie chỉ có thể truy cập được tại miền đã đặt cookie.

Chủ Đề