DISCUSSIONS

@NgocPH oki bạn, follower chân chính nha

0
May 30th, 1:02 a.m.

Cách tiếp cận kĩ thuật này sáng tạo quá anh ơi, xem xong thấy dễ hiểu thật sự ❤️

+1
May 29th, 4:05 p.m.

như này mới đúng chứ nhỉ

    public synchronized String getMessage() throws InterruptedException {
        while (messages.size() == 0) {
            notify();
            wait();
            //Gọi hàm wait() để đồng bộ hoá đoạn code sau, Thread hiện tại sẽ tạm dừng, rơi vào trạng thái nằm chờ đến khi method notify được gọi.
        }
        String message = (String) messages.firstElement();
        messages.removeElement(message);
        return message;
    }
0

@Tran_Manh_229 Vâng a, cảm ơn anh chia sẻ. Mong anh chia sẻ hoặc giới thiệu 1 project đơn giản với Apache Spark ạ. Em cũng học java. :"D

0

Hay quá azai

0

@wiliamfeng chào bạn, tóm lại đó là:

SSG (Static Site Generation): gen page tĩnh, sau khi gen sẽ không đổi, không tự cập nhật ISG (Incremental Site Generation): gen page tăng dần, ban đầu gen 1 số lượng page tĩnh như (SSG), nhưng sau đó có thể tự cập nhật và gen thêm

+1

@NHDPhucIT Mà m thử run lại vài lần thì thấy đúng là nó nhanh hơn tầm 50% thật!

0

@cuongpv Bản chất của jwt token là stateless và self-contained, tức là chỉ cần mình nó đã chứa đủ thông tin đúng hay sai rồi không cần phải check gì nữa. Với logout thì người ta có 2 hướng:

  • Rút ngắn thời gian token ngắn tới mức có thể để không cần check với state
  • Sử dụng blacklist (tại sao lại dùng blacklist thay vì whitelist thì là bởi vì mình lưu toàn bộ "token còn hạn" thì sẽ tốn memory hơn rất nhiều so với lưu những "token còn hạn nhưng invalid").
  • Blacklist thì có nhiều hướng thiết kế nữa (để giảm truy vấn và giảm memory lưu blacklist)
    • Blacklist trực tiếp token ID (bằng jti claim) bằng 1 set (có nhiều thuật toán tối ưu cho việc check có-không như bloom filter), cái dở là phải biết mọi id của token đã sinh ra (bất tiện nếu dùng refresh token)
    • Blacklist token của 1 phiên đăng nhập (tất cả jwt sinh ra từ 1 refresh token) với việc lưu lại thời gian invalid của refresh token (ví dụ jwt sinh ra từ refresh token A, thì lưu vào redis A: timestamp, tất cả token có thời gian sinh ra trước timestamp này là invalid. Phục vụ cho việc logout 1 device (và giữ phiên đăng nhập device khác)
    • Blacklist token của 1 user (tất cả jwt sinh ra cho user X) với việc lưu thời gian invalid của user đó ( lưu X: timestamp), tất cả token có thời gian tạo trước timestamp là invalid. Phục vụ cho việc logout all device.
0

Cảm ơn bài viết của tác giả ❤️

0

@monmen Anh có thể chia sẻ cách anh xử lý được không ạ? Tks anh ❤️

0

Theo như mình biết JWT sẽ lưu giữ thông tin dưới client. Bạn có biết nó lưu như thế nào không ạ chỉ mình với ^^

0

@khanhdev_ lằng nhằng gì đâu.

0

Cảm ơn anh nhiều, mai em phỏng vấn thì hôm nay lại xem được bài viết hay thế này ♥️

+1

bai viet rat suc tich, day du, co vi du ngan gon, de hieu. Cam on ban rat nhieu, hy vong ban cho ra nhieu bai viet huu ich voi cong dong hon nua

0

❤️

0

Hay quá ạ. Hóng chờ phần 2 ạ

+1
Viblo
Let's register a Viblo Account to get more interesting posts.