STACKJAVA

Code ví dụ JSON Web Token với Spring Security JWT

Code ví dụ JSON Web Token với Spring Security JWT.

1. JSON Web Token là gì?

JSON Web Token (JWT) là một chuẩn mở (RFC 7519) xác định một cách nhỏ gọn, khép kín để truyền tải thông tin một cách an toàn giữa các bên bằng một đối tượng JSON. Thông tin được truyền tải bởi JWT có thể được xác thực và tin tưởng bởi vì nó sử dụng chữ ký số, JWT có thể được ký với khóa private (ví dụ HMAC) hoặc cặp khóa public/private (ví dụ RSA)

Gọn nhẹ: Do kích thước nhỏ hơn của chúng, JWT có thể được gửi qua URL, tham số POST hoặc bên trong tiêu đề HTTP. Ngoài ra, kích thước nhỏ hơn có nghĩa là truyền nhanh.

Tự chứa: Hàng tải chứa tất cả các thông tin cần thiết về người dùng, tránh sự cần thiết phải truy vấn cơ sở dữ liệu nhiều lần.

1.1. Khi nào nên sử dụng JWT?

Đây là các tình huống mà JSON Web Token rất hữu dụng:

1.2. Cấu trúc của JWT

JWT gồm 3 phần

Ví dụ 1 JSON Web Token:

eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1MjIzODMwMzAsInVzZXJuYW1lIjoia2FpIn0.VC–B2dsUpGOwl9QtTXjL2iwuVsZPUSUsBKEjPPx_R8

Mình dùng trang https://jwt.io/ để parse token, khi sử dụng jwt bạn cũng sẽ parse token tương tự như thế.

Phần header sẽ có thông tin thuật toán mã hóa là “HS256”, phần payload chứa thời gian hết hạn của token và username, phần chữ ký số mình không sử dụng từ “secret” để làm chữ ký nên nó báo “invalid signature”

Code ví dụ JSON Web Token với Spring Security JWT. stackjava.com

2. Spring Security JWT (RESTFul API Security)

Code ví dụ JSON Web Token với Spring Security JWT. stackjava.com

Xem thêm:

Code ví dụ Spring MVC RESTful WebService với Spring Security

Code ví dụ Spring Boot Restful API – JSON Web Token

 

 

References:

https://www.toptal.com/java/rest-security-with-jwt-spring-security-and-java

https://en.wikipedia.org/wiki/JSON_Web_Token

https://jwt.io/introduction/