Hướng dẫn can i use jwt with php? - tôi có thể sử dụng jwt với php không?

Bảo mật đã trở thành một khía cạnh cơ bản để xem xét trong khi phát triển một ứng dụng. Khi mọi người nhận thức rõ hơn và tin tặc khét tiếng hơn, bạn cần sử dụng các hệ thống tăng cường bảo mật dữ liệu của ứng dụng.

Trước đây, thông thường sử dụng lưu trữ phiên để bảo mật các ứng dụng. Trong thời gian gần đây, các phiên đã tỏ ra không hiệu quả, đã thúc đẩy di chuyển để xác thực với API. Mặc dù đây là một cách tuyệt vời và mạnh mẽ để bảo mật các ứng dụng web, nhưng nó đã trở nên lỗi thời khi các tin tặc cố gắng tìm ra cách bẻ khóa xác thực này.

Khi web phát triển để chấp nhận ngày càng nhiều người dùng, nghiên cứu về các kỹ thuật xác thực an toàn tăng tốc. Năm 2010, thế giới đã được giới thiệu một tiêu chuẩn xác thực mới và an toàn - JWT. Hãy biết thêm về JWT.

JWT là gì?

JSON Web Token [JWT] là một cách an toàn để xác thực người dùng trên một ứng dụng web. Sử dụng JWT, bạn có thể chuyển một cách an toàn dữ liệu và thông tin được mã hóa giữa máy khách và máy chủ.

Tìm hiểu thêm về sự khác biệt giữa các phiên và JWT ở đây.

JWT cung cấp nhiều lợi ích. Dưới đây là một số trong số họ.

Lợi ích của việc sử dụng JWT

  • Tương thích với OAuth 2, có nghĩa là các ứng dụng của bạn sẽ dễ dàng làm việc với các tiêu chuẩn bảo mật mới nhất.
  • JWTS có thể hết hạn sau một thời gian để không ai có quyền truy cập không bị gián đoạn vào trang web. Điều này rất quan trọng để bảo vệ một trang web khỏi các cuộc tấn công.
  • JSON được sử dụng để truyền dữ liệu, vì vậy bạn có thể làm việc với bất kỳ ngôn ngữ nào bạn chọn và xử lý dữ liệu JSON.
  • JWT là giàu tính năng và bao gồm thông tin đầy đủ về bất kỳ yêu cầu ủy quyền nào với các khía cạnh khác nhau.

Bây giờ bạn đã học được về những lợi thế, đã đến lúc đi sâu hơn vào JWT.

Cấu trúc của JWT

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
  .eyJpc3MiOiJodHRwczpcL1wvcWEtYXBpLndlbGx2aWJlLmNvbVwvYXBpXC9hdXRoXC9sb2dpbiIsImlhdCI6MTYzMDQ3OTA5NSwiZXhwIjoxNjMwNDgyNjk1LCJuYmYiOjE2MzA0NzkwOTUsImp0aSI6Imtsa3hHUGpMOVlNTzRSdUsiLCJzdWIiOjc3ODE4LCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3IiwidXNlcnNfaWQiOjc3ODE4LCJtZW1iZXJzX2lkIjo3Nzg4MzMsInByb3h5X3VzZXJfbWVtYmVyc19pZCI6bnVsbH0
  .TxXwLLu1zWBe7cLLYdFYy3P2HX4AaLgc7WfSRtTgeiI

Chuỗi trên là một ví dụ về chuỗi xác thực JWT. Thoạt nhìn, nó có vẻ là một chuỗi được sản xuất ngẫu nhiên. Nhưng đừng đánh giá thấp; Chuỗi này được tạo thành từ ba thành phần riêng biệt cần thiết trong JWT.

Tiêu đề của JWT là phần ban đầu của chuỗi trước dấu chấm đầu tiên. Tiêu đề này được sản xuất bằng cách có được văn bản đơn giản và thực hiện các hoạt động mật mã trên đó. Hơn nữa, tiêu đề sử dụng quy trình mã hóa Base64 rất hiệu quả.

Bạn có thể nhanh chóng có được các tiêu đề của JWT bằng các kỹ thuật mã hóa đối xứng hoặc không đối xứng.

Tải trọng JWT

Thành phần trung tâm của chuỗi là phần tải trọng của JWT. Chuỗi này bao gồm tất cả các thông tin quan trọng về một yêu cầu nhận được và người dùng hoặc máy tính máy tính đã tạo yêu cầu. Có các trường cặp giá trị khóa được xác định trước trong tải trọng có thể được sử dụng để cung cấp thêm thông tin về yêu cầu nhận được. Dưới đây là một lời giải thích về các trường tải trọng chung.

  • Sub - Trường con chứa chủ đề của tải trọng JWT. Nó chứa thông tin duy nhất về người dùng và thiết bị khách đã tạo yêu cầu xác thực này. - The sub field contains the subject of a JWT payload. It contains unique information about the user and client device that has created this authentication request.
  • ISS - Trường này chứa dữ liệu về máy chủ đã phát hành mã thông báo. ISS là viết tắt của nhà phát hành, trong đó đề cập đến máy chủ. - This field contains data about the server that has issued the token. Iss is short for Issuer, which refers to the server.
  • EXP - Không giống như các kỹ thuật xác thực khác, JWT có thời gian hết hạn. Tên trường này là một hình thức ngắn cho ngày hết hạn. Nó chứa dữ liệu về thời điểm mã thông báo được phát hành và ngày và thời gian hết hạn của mã thông báo được phát hành. - Unlike other authentication techniques, JWT has an expiration time. This field's name is a short form for the expiration date. It contains data about when the token was issued and the expiration date and time of the issued token.

Chữ ký JWT

Một hoạt động mật mã được thực hiện trên dữ liệu JWT để có được chữ ký này. Nó mất vào tải trọng, khóa bí mật và giá trị tiêu đề của JWT. Chữ ký sau đó được tạo ra bằng cách áp dụng một hàm cho các giá trị thu được này.

Máy chủ và người dùng có thể xác minh chữ ký này để biết về tính bảo mật và tính toàn vẹn của dữ liệu. Nếu chữ ký này khớp ở cả hai đầu, thì dữ liệu được coi là an toàn và tất cả các giao dịch khác có thể xảy ra.

Sử dụng JWTS để bảo mật API PHP

Như bạn đã hiểu mọi thứ về JWT, hãy bảo mật API PHP của bạn bằng JWT. Thực hiện theo mã theo, và cuối cùng, bạn sẽ tạo API PHP chống giả mạo.

Bài viết này tạo ra một trang đăng nhập đơn giản và xác thực nó bằng JWT. Điều này sẽ giúp bạn bắt đầu với JWT và PHP.

Để theo dõi, bạn sẽ cần cài đặt PHP và nhà soạn nhạc trên máy tính của bạn.

Nếu bạn chưa cài đặt trình soạn thảo trên máy tính, bạn có thể tìm hiểu cách cài đặt trình soạn thảo tại đây. Khi bạn đã cài đặt trình soạn thảo, hãy chạy công cụ từ thư mục dự án của bạn. Nhà soạn nhạc sẽ hỗ trợ bạn cài đặt Firebase PHP-JWT, thư viện của bên thứ ba để làm việc với JWTS và Apache.

Sau khi thư viện được cài đặt, bạn sẽ cần thiết lập mã đăng nhập trong

Bài Viết Liên Quan

Chủ Đề