Sử Dụng JWT Authentication Khi Nào Và Như Thế Nào?

6.2. Sử dụng JWT để uỷ quyền hoạt động trên các máy chủ

Giả sử bạn đăng nhập vào 1 máy chủ, SERVER1, sau khi đăng nhập thành công thì được chuyển hướng đến một máy chủ khác SERVER2 để thực hiện một số xử lý.

SERVER1 có thể cấp cho bạn 1 JWT để ủy quyền cho phép bạn kết nối đến SERVER2. Hai máy chủ không cần chia sẻ cùng 1 session hoặc bất cứ điều gì để xác thực bạn. Sử dụng token để xử lý trường hợp này là rất hoàn hảo.

7. Session tokens cho các regular web apps

Bạn có thể nghĩ rằng việc sử dụng JWTs cho session token là một ý tưởng hay lúc đầu, chẳng hạn:

  • Bạn có thể lưu trữ bất kỳ loại thông tin user nào trên client
  • Server có thể tin tưởng client vì JWT đã được ký và không cần phải gọi cơ sở dữ liệu để lấy thông tin bạn đã lưu trữ trong JWT
  • Bạn không cần phải kết hợp các sessions trong cơ sở dữ liệu tập trung khi bạn gặp vấn đề cần horizontal scaling

Cuối cùng, nếu bạn đã có cơ sở dữ liệu cho ứng dụng của mình, chỉ cần sử dụng bảng session và sử dụng các regular session được hỗ trợ bởi các framework server side là đủ.

Tại sao? Sẽ mất nhiều công sức nếu sử dụng JWT: vì chúng được gửi trong mọi request đến máy chủ và nó luôn luôn mất công sức hơn là sử dụng server-side sessions.

Ngoài ra, mặc dù các rủi ro bảo mật được giảm thiểu khi gửi JWT bằng HTTPS, nhưng luôn luôn tồn tại khả năng nó bị chặn, dữ liệu bị đánh cắp và “toang” -> khách hàng của bạn sẽ bị “lột trần”.

8. Cách chọn thư viện JWT hoàn hảo

Hãy vào trang jwt.io và xem danh sách thư viện. Nó có danh sách các thư viện phổ biến nhất để triển khai JWT.

Chọn ngôn ngữ bạn dùng và chọn thư viện mà bạn thích, thư viện tốt nhất là thư viện có số lượng tích xanh nhiều nhất.

9. Kết luận

JWT là một tiêu chuẩn rất phổ biến mà bạn có thể sử dụng để xác thực requests bằng cách sử dụng chữ ký và trao đổi thông tin giữa các bên. Hãy chắc chắn rằng bạn lúc nào thì sử dụng nó, lúc nào thì không và cách ngăn chặn các vấn đề bảo mật cơ bản nhất.

Từ khóa » Jwt Lưu ở đâu