Xác thực bằng JWT trong Spring

Chào các bạn, mình đang thực hiện một sự án bằng Spring Boot và có một vấn đề liên quan đến xác thực bằng JWT mong được xác bạn giải đáp. Hiện dự án mình làm như sau

  • Client login bằng username và password.

  • Server trả về một chuỗi JWT (thành công) và lưu nó vào LocalStorage. Nếu client cần làm việc với server thì mình lấy chuỗi JWT thêm vào header khi gửi request.

Mình muốn hỏi là nếu lúc setExpiration khi build JWT mình đặt giá trị là 1 năm, nhưng chuỗi JWT này bị bên thứ ba biết được thì phải giải quyết như thế nào. Vì khi đó có thể thoải mái gửi request mà không cần login nữa ví dụ dùng postman thì chỉ cần thêm chuỗi JWT vào Authorization.

Cám ơn các bạn.

Làm thêm cơ chế blacklist jwt nữa là ok

4 Likes

Bên thứ 3 là bên nào bạn ? Nếu là User thì bạn có lưu bằng gì đi nữa thì cũng bị lấy và gửi request. Điển hình như mấy ứng dụng share like facebook đó, fb cũng ko chặn đc đâu.
Còn jwt thì nên lưu vào cookie để tăng tính bảo mật. Link đọc thêm https://viblo.asia/p/noi-luu-tru-jwt-cookies-voi-html5-web-storage-gDVK2wArZLj

4 Likes

Cám ơn bạn Quân và Đào An đão gợi ý giải pháp.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?