Mã thông báo web JSON là một phương thức truyền hoặc trao đổi dữ liệu hiệu quả, được bảo mật cũng như được sử dụng nhiều nhất trên internet. Nói chung, nó được sử dụng để xác thực và ủy quyền trong các ứng dụng. Quy trình xác thực là chúng tôi tạo mã thông báo tại máy chủ và gửi lại cho khách hàng được sử dụng cho các yêu cầu tiếp theo trên máy chủ. Bây giờ, điểm thảo luận là mã thông báo jwt này sẽ có hiệu lực trong bao lâu? . Trước tiên hãy hiểu cách tạo mã thông báo JWT
Phương thức sign() của thư viện jsonwebtoken được sử dụng để tạo mã thông báo chấp nhận thông tin nhất định làm đối tượng tham số và trả về mã thông báo đã tạo.
cú pháp
jwt.sign(payload, secretOrPrivateKey, [options, callback])Thông số
- khối hàng. Đó là thông tin được mã hóa trong mã thông báo
- chìa khoá bí mật. Đó là chữ ký hoặc có thể nói một mã được sử dụng để xác định tính xác thực của mã thông báo
- tùy chọn. Trong tùy chọn, chúng tôi chuyển một số thông tin nhất định về mã thông báo và đó là nơi chúng tôi cung cấp thời hạn của mã thông báo mà nó sẽ có hiệu lực
loại trả lại. Phương thức này sẽ trả về mã thông báo JWT
Ví dụ. Tạo mã thông báo hết hạn trong 10 phút
Bước 1. Tạo một dự án nút
Vì chúng tôi đang làm việc trên một thư viện nút, đây là bước bắt buộc để tạo dự án nút, hãy viết npm init trong thiết bị đầu cuối. Nó sẽ yêu cầu một vài cấu hình về dự án của bạn, điều này cực kỳ dễ cung cấp
npm initBước 2. Cài đặt gói “jsonwebtoken”
Trước khi viết mã JWT, chúng ta phải cài đặt gói,
npm install jsonwebtokenĐây sẽ là cấu trúc dự án của chúng tôi sau khi cài đặt trong đó node_modules chứa các mô-đun và gói. json lưu trữ mô tả của dự án. Ngoài ra, chúng tôi đã tạo một ứng dụng. js để viết toàn bộ mã.
Cấu trúc dự án
Bước 3. Tạo mã thông báo JWT với thời gian hết hạn xác định
Có hai phương pháp đăng ký hết hạn mã thông báo, cả hai đều được hiển thị bên dưới kèm theo lời giải thích.
- Tạo biểu thức về thời gian hết hạn
- Cung cấp thời gian hết hạn của mã thông báo JWT trong đối số tùy chọn của phương thức
Cách tiếp cận 1. Tồn tại một điểm kinh nghiệm chính trong đó chúng tôi có thể cung cấp số giây kể từ kỷ nguyên và mã thông báo sẽ có hiệu lực cho đến những giây đó
Javascript
// Importing module
const jwt = require('jsonwebtoken');
const token = jwt.sign({
// Expression for initialising expiry time
npm init1
npm init3_______1_______4
npm init5_______1_______6);
npm init8npm init9 npm install jsonwebtoken0
npm install jsonwebtoken1
npm install jsonwebtoken2npm install jsonwebtoken3
npm install jsonwebtoken2npm install jsonwebtoken5
npm install jsonwebtoken6
npm install jsonwebtoken7
đầu ra
Cách tiếp cận 2. Trong phương pháp này, chúng ta có thể chuyển thời gian để hết hạnTrong khóa trong các tùy chọn, nó yêu cầu số giây cho đến khi mã thông báo vẫn hợp lệ hoặc chuỗi thời lượng là '1h', '2h', '10m', v.v.
Javascript
// Importing module
const jwt = require('jsonwebtoken');
const token = jwt.sign({
// Importing module4
npm init3_______1_______4
npm init5_______1_______6const jwt = require(0
const jwt = require(2const jwt = require(3
const jwt = require(4
npm init8npm init9 npm install jsonwebtoken0
npm install jsonwebtoken1
npm install jsonwebtoken2npm install jsonwebtoken3
npm install jsonwebtoken2npm install jsonwebtoken5
'jsonwebtoken'3
npm install jsonwebtoken7
đầu ra
Bước 4. Xác minh mã thông báo về thời hạn hết hạn
Chúng tôi đã tạo mã thông báo thành công, bây giờ là lúc để xác minh xem mã có hoạt động theo cách dự định hay không.
Javascript
'jsonwebtoken'5
const jwt = require('jsonwebtoken');
'jsonwebtoken'9
);0
);1
npm init8npm init9 npm install jsonwebtoken0
);5
);6_______1_______6);8);9const token = jwt.sign({0
const token = jwt.sign({2 const token = jwt.sign({3
const token = jwt.sign({4const token = jwt.sign({5
const token = jwt.sign({6_______2_______5
const token = jwt.sign({4const token = jwt.sign({9
1
3 4
const token = jwt.sign({4const token = jwt.sign({5
const token = jwt.sign({6_______2_______5
const token = jwt.sign({4// Expression for initialising expiry time0// Expression for initialising expiry time1);
1
const jwt = require(4
trước 10 phút
Đầu ra 1. Ở đây chúng tôi đang kiểm tra trước 10 phút tạo mã thông báo, như dự kiến, khối mã khác sẽ hoạt động
Sau 10 phút
Đầu ra 2. Ở đây chúng tôi đang kiểm tra khi mã thông báo hết hạn, TokenExpirationError sẽ được đưa ra trong trường hợp này.
Phần kết luận. Sau khi xem hai kết quả đầu ra này và phương pháp tạo mã thông báo, chúng ta có thể phân tích xem thời hạn của mã thông báo được khai báo như thế nào và thời hạn hiệu lực của mã thông báo đó là bao lâu