Chủ Nhật, Tháng Chín 25, 2022
27 C
Ho Chi Minh City
spot_img

Tìm hiểu JSON Web Token (JWT)

Must read

Openlivenft
Openlivenfthttps://openlivenft.info/
Trang tổng hợp thông tin nhanh - mới nhất về NFT, COIN, Metaverse, tài chính, crypto của OpenliveNFT
Nếu bạn chưa biết JSON Web Token là gì, vậy lúc này chắc bạn đang tự hỏi :

1. JSON Web Token (JWT) là gì?

JSON Web Token ( JWT ) là một tiêu chuẩn mở ( RFC 7519 ) định nghĩa một cách nhỏ gọn và khép kín để truyền thông tin bảo đảm an toàn giữa những bên dưới dạng đối tượng người tiêu dùng JSON. tin tức này hoàn toàn có thể được xác định và đáng đáng tin cậy vì nó được ký điện tử. JWT hoàn toàn có thể được ký bằng cách sử dụng bí hiểm ( với thuật toán HMAC ) hoặc cặp khóa public / private bằng RSA hoặc ECDSA .

2. Cấu trúc của một JWT trông như thế nào?

Mỗi một JWT gồm có 3 phần là Header, Payload, Signature. Chúng được ngăn cách bởi dấu. (dot)
Ví dụ về JWT sẽ có dạng như sau:

eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJkaW5ocGgiLCJpYXQiOjE2MDkzODY3NjEsImV4cCI6MTYwOTQ3MzE2Mn0._yPpOiI70UZ6lbHK5hlaJzBDIoew

Header

Bạn đang đọc: Tìm hiểu JSON Web Token (JWT)

Header là đoạn tiên phong, nó gồm có 2 thành phần chính là :

  • alg: Thuật toán sử dụng để mã hoá, như là HMAC SHA256 hoặc RSA.
  • typ: Loại token, mặt định là JWT.

VD :

{ 
    "alg": "HS256"、
    "typ": "JWT" 
}

Payload

Phần thứ hai của JWT là payload, nó chứa những thông tin. Các thông tin này là những entity ( thường là user ) và tài liệu bổ trợ. Có ba loại thông tin : registered, public, and private .

Registered

Đây là một tập hợp những thông tin được xác lập trước, không bắt buộc nhưng được khuyến nghị, để phân phối một tập hợp những xác nhận quyền sở hữu có ích, hoàn toàn có thể tương tác. Một số trong số đó là : Iss ( nhà phát hành ), exp ( thời hạn hết hạn ), sub ( chủ đề ), aud ( người theo dõi ) và những thứ khác .

Public

Public claims hoàn toàn có thể được xác lập theo ý muốn bởi những người sử dụng JWT. Nhưng để tránh tác động ảnh hưởng, trùng lặp chúng nên được xác lập trong IANA JSON Web Token Registry hoặc được định nghĩa là một URI có chứa namespace không bị trùng lặp .

Private

Đây là thông tin tự định nghĩ, được tạo ra để chia sẽ thông tin giữa các bên đồng ý sử dụng chúng.

{
        "sub": "1234567890",
        "name": "John Doe",
        "admin": true
}

Signature

Để tạo phần chữ ký, tất cả chúng ta cần có Header, Payload đã được mã hoá và 1 chuổi secret .

HMACSHA256(
    base64UrlEncode(header) + "." +
    base64UrlEncode(payload),
    secret)

3. Nên sử dụng JWT trong trường hợp nào?

Authorization : Đây là trường hợp phổ cập nhất để sử dụng JWT. Khi người dùng đã đăng nhập, mỗi request tiếp theo sẽ gồm có JWT, được cho phép người dùng truy vấn những tài nguyên được phép với JWT đó. Single Sign On là một tính năng được JWT sử dụng thoáng rộng lúc bấy giờ, vì ngân sách nhỏ và năng lực thuận tiện sử dụng trên những miền khác nhau .Information Exchange : JWT là một cách tốt để truyền thông tin giữa những bên một cách bảo đảm an toàn. Bởi vì JWT hoàn toàn có thể được ký – ví dụ : sử dụng cặp khóa public / private – bạn hoàn toàn có thể chắc như đinh rằng đúng người đúng việc. Ngoài ra, vì chữ ký được tính bằng cách sử dụng Header và Payload, bạn cũng hoàn toàn có thể xác định rằng nội dung không bị trá hình .

4. JSON Web Tokens hoạt động như thế nào?

Trong xác nhận, khi người dùng đăng nhập thành công xuất sắc bằng thông tin đăng nhập của họ, JWT sẽ được trả lại. Vì Token là thông tin xác nhận nên phải rất là cẩn trọng để ngăn ngừa những yếu tố bảo mật thông tin. Nói chung, bạn không nên giữ những mã thông tin lâu hơn nhu yếu .Bất cứ khi nào người dùng muốn truy vấn vào một tài nguyên được bảo vệ, user agent phải gửi JWT, thường là trong Header Authorization bằng cách sử dụng schema Bearer. Nội dung của tiêu đề sẽ giống như sau :

Authorization: Bearer 

Nếu Token gửi trong tiêu đề Authorization header, Cross-Origin Resource Sharing (CORS) sẽ không phải là vấn đề vì nó không sử dụng cookie.

Sơ đồ sau đây cho thấy cách JWT được lấy và sử dụng để truy vấn những API hoặc tài nguyên :

  1. App hoặc client gửi yêu cầu ủy quyền đến server.
  2. Khi authorization được cấp, server trả về một token truy cập cho App.
  3. App sử dụng token truy cập để truy cập tài nguyên được bảo vệ (như API).

Tài liệu tìm hiểu thêm : JWT

Source: https://openlivenft.info
Category : TIN COIN

Đánh giá bài post
- Advertisement -spot_img

More articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisement -spot_img

Latest article

Ethereum là gì? | OpenliveNFT