Helpex - Trao đổi & giúp đỡ Đăng nhập
31

Tôi không muốn mã thông báo của mình hết hạn và nó sẽ có giá trị mãi mãi.

var token = jwt.sign({email_id:'123@gmail.com'}, "Stack", {

                        expiresIn: '24h' // expires in 24 hours

                         });

Trong mã trên, tôi đã đưa ra trong 24 giờ .. Tôi không muốn mã thông báo của mình hết hạn. Điều gì sẽ được thực hiện cho điều này?

31 hữu ích 5 bình luận 92k xem chia sẻ
41

Yêu expcầu của JWT là tùy chọn. Nếu một mã thông báo không có nó, nó được coi là nó không hết hạn

Theo tài liệu của https://www.npmjs.com/package/jsonwebtoken , expiresIntrường này cũng không có giá trị mặc định, vì vậy chỉ cần bỏ qua nó.

Không có giá trị mặc định cho expiresIn, notBefore, đối tượng, chủ đề, nhà phát hành. Các xác nhận quyền sở hữu này cũng có thể được cung cấp trực tiếp trong payload với exp, nbf, aud, sub và Iss, nhưng bạn không thể đưa vào cả hai nơi.

var token = jwt.sign({email_id:'123@gmail.com'}, "Stack", {});
41 hữu ích 0 bình luận chia sẻ
36

Để đặt thời gian hết hạn tính bằng ngày: hãy thử cách này

 var token = jwt.sign({email_id:'123@gmail.com'}, "Stack", {

           expiresIn: '365d' // expires in 365 days

      });

"expiresIn" phải là một số giây hoặc chuỗi trả lời một khoảng thời gian, ví dụ: "1d", "20h",

Tài liệu: jsonwebtoken

36 hữu ích 3 bình luận chia sẻ
9

bạn có thể đặt thời gian hết hạn theo số hoặc chuỗi:

được biểu thị bằng giây hoặc một chuỗi mô tả khoảng thời gian zeit / ms.
Vd: 60, "2 ngày", "10h", "7ngày" .

Giá trị số được hiểu là số giây. Nếu bạn sử dụng một chuỗi, hãy đảm bảo bạn cung cấp đơn vị thời gian (ngày, giờ, v.v.),
nếu không , đơn vị mili giây được sử dụng theo mặc định ("120" bằng "120ms").

 var token = jwt.sign({email_id:'123@gmail.com'}, "Stack", {
        expiresIn: "10h" // it will be expired after 10 hours
        //expiresIn: "20d" // it will be expired after 20 days
        //expiresIn: 120 // it will be expired after 120ms
        //expiresIn: "120s" // it will be expired after 120s
 });
9 hữu ích 0 bình luận chia sẻ
4

Bạn có thể lưu cài đặt của mình trong một tệp cấu hình. hết hạn trong ngày sử dụng d sau ngày mong muốn của bạn như sau 90 ngày phải là: 90d cho giờ sử dụng h ví dụ 20h

bạn cũng có thể sử dụng mili giây, ví dụ: sau 4102444800ms

config.env

JWT_SECRET = my-32-character-ultra-secure-and-ultra-long-secret
JWT_EXPIRES_IN = 90d

authController.js

const signToken = (id) => {
  return jwt.sign({ id: id }, process.env.JWT_SECRET, {
    expiresIn: process.env.JWT_EXPIRES_IN,
  });
};

const signIn = (user) =>{
    const token = signToken(user._id);
}
4 hữu ích 1 bình luận chia sẻ
0
  jwt.sign(contentToEncrypt, SECRET_KEY, { expiresIn: '365d' });
0 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ node.js jwt , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading