Tôi hiện đang triển khai Kiến trúc OAuth 2.0 cho API RESTful của mình.Kiểm tra mã thông báo truy cập mỗi yêu cầu với Redis
Với mỗi yêu cầu, tôi thiết lập Mã thông báo người gửi ủy quyền trong Tiêu đề HTTP cho tất cả khách hàng của tôi để thực hiện Yêu cầu được ủy quyền.
Authorization: Bearer sdflksd3r4823vkn95-03850432
Tôi hiểu rằng thực tế phổ biến là chỉ chấp nhận mã thông báo trong API cho đến ngày hết hạn. Nhưng giả sử nếu người dùng muốn thu hồi mã thông báo, tôi sẽ cần sử dụng phương pháp kiểm tra trạng thái mã thông báo với mỗi yêu cầu.
Vì vậy, tôi đã nghĩ đến việc chuyển sang Db để kiểm tra mọi yêu cầu HTTP. Tôi có một cảm giác rằng điều này sẽ không quy mô độc đáo do lý do hiệu suất.
Vì vậy, tôi đã tự hỏi nếu một giải pháp như Redis sẽ là thích hợp cho lần đọc rất nhanh của trạng thái mã thông báo truy cập?
Tôi chắc chắn đang xem xét bộ lọc nở hoa. Mặc dù tôi cũng tự hỏi nếu nó sử dụng một bộ nhớ đệm đơn là một lựa chọn khả thi –
Nếu bạn chỉ có một máy chủ duy nhất thì bạn có nhiều tùy chọn hơn vì bạn chỉ phải duy trì trạng thái ở một nơi duy nhất. Có một máy chủ bên ngoài như Redis duy trì trạng thái cho phép bạn có nhiều máy chủ API. Một singleton chỉ hoạt động nếu bạn có một máy chủ duy nhất. Một lựa chọn khác sẽ là Bản đồ phân tán (Coherence, Hazelcast, v.v.). Nếu các thẻ có thời gian hết hạn tương đối ngắn thì bạn cũng có thể xóa sau đó khỏi bản đồ được phân phối khi chúng hết hạn để giảm kích thước của nó. – sehrope
Câu trả lời hay. Cảm ơn rất nhiều! –