Avatar
1
minhvd Beginner
minhvd Beginner
Thiết kế hệ thống login với jwt
e hỏi về cách thiết kế hệ thống tại sao lại cần 1 bảng để lưu token. thường thì e làm khi login success thì gen ra jwt trả access token cho web là xong. chưa hiểu tại sao lại cần có bảng để lưu access token
  • Answer
Remain: 5
1 Answer
Avatar
tvd12 Beginner
tvd12 Beginner
The Best Answer
  1. Đúng là jwt rất hay, bằng cách sử dụng chữ ký số để xác thực, bản thân token cũng chứa các thông tin như userId hay username để chúng ta không cần phải truy vấn vào cơ sở dữ liệu nữa, chính vì vậy theo lý thuyết thì nó rất hay.
  2. Tuy nhiên trong thực tế sử dụng thì có một trường hợp khá nhức nhối đó chính là việc user logout, cụ thể là giả sử user bị lộ mật khẩu và họ muốn đổi mật khẩu gấp, lúc này sẽ yêu cầu token phải bị xoá bỏ hoặc hết hạn ngay lập tức thì jwt lại không làm được, thông tin đã được lưu trong jwt chỉ cần xác thực đúng chữ ký là thành công hết. Như vậy kẻ tấn công có được token là sẽ có được tất cả mặc cho người dùng có tạo mới mật khẩu đi chăng nữa.
  3. Vậy nên cần có bảng token để kiểm tra một lần nữa, nếu không có token trong csdl thì kẻ tấn công dù có được token cũng sẽ bị từ chối gọi API.
  • 2
  • Reply