Xác thực bằng JSON Web Token (JWT) trong WordPress
Hướng dẫn chi tiết cách tích hợp xác thực bằng JSON Web Token (JWT) vào hệ thống WordPress. Bạn sẽ học cách bảo mật API REST của WordPress và sử dụng JWT để quản lý phiên đăng nhập người dùng.
Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt và cấu hình xác thực bằng JSON Web Token (JWT) trên WordPress. JWT là một giải pháp bảo mật đơn giản và hiệu quả để bảo vệ API REST của WordPress, đặc biệt hữu ích trong việc xác thực người dùng khi giao tiếp giữa các hệ thống khác nhau.
Mã PHP và hướng dẫn cấu hình
-
Cài đặt plugin JWT Authentication for WP REST API:
- Truy cập vào WordPress Dashboard.
- Vào phần "Plugins" > "Add New".
- Tìm kiếm "JWT Authentication for WP REST API" và cài đặt plugin này.
- Kích hoạt plugin.
-
Cấu hình tệp
wp-config.php
:- Thêm các dòng sau vào tệp
wp-config.php
để kích hoạt JWT:
define('JWT_AUTH_SECRET_KEY', 'your-top-secret-key'); define('JWT_AUTH_CORS_ENABLE', true);
- Trong đó, thay thế chuỗi
'your-top-secret-key'
bằng một chuỗi bảo mật mạnh.
- Thêm các dòng sau vào tệp
-
Tạo khóa bảo mật cho JWT: Bạn có thể tạo một chuỗi bảo mật mạnh bằng cách sử dụng công cụ tạo mã ngẫu nhiên hoặc lấy từ
openssl
:openssl rand -base64 32
-
Thử nghiệm JWT với API REST:
-
Đăng nhập: Gửi yêu cầu
POST
tới/wp-json/jwt-auth/v1/token
với thông tin người dùng:POST /wp-json/jwt-auth/v1/token Content-Type: application/json { "username": "your-username", "password": "your-password" }
- Nếu đăng nhập thành công, bạn sẽ nhận được mã JWT để sử dụng trong các yêu cầu tiếp theo.
-
Đăng nhập: Gửi yêu cầu
-
Gửi yêu cầu có xác thực: Sau khi có JWT, gửi yêu cầu với
Authorization
header chứa mã token:GET /wp-json/wp/v2/posts Authorization: Bearer your-jwt-token
Giải thích chi tiết từng bước:
- Cài đặt plugin: Plugin JWT Authentication sẽ giúp bạn thêm chức năng xác thực bằng JWT vào API REST của WordPress.
-
Cấu hình
wp-config.php
: Thiết lập các biến môi trường cho JWT để đảm bảo tính bảo mật khi xác thực người dùng. - Tạo khóa bảo mật: Khóa này dùng để mã hóa và giải mã JWT, bảo vệ thông tin đăng nhập của người dùng.
- Đăng nhập qua API: Bằng cách sử dụng thông tin người dùng, API trả về một JWT đại diện cho phiên làm việc của người dùng.
-
Gửi yêu cầu có xác thực: Bất kỳ yêu cầu nào tới API REST cần có mã JWT trong phần
Authorization
để xác thực.
Yêu cầu hệ thống:
- Phiên bản WordPress 5.0 hoặc cao hơn.
- PHP 7.2 hoặc cao hơn.
- Plugin JWT Authentication for WP REST API.
Cách cài đặt:
- Cài đặt plugin JWT Authentication for WP REST API từ thư viện plugin WordPress.
- Cấu hình tệp
wp-config.php
với khóa bảo mật cho JWT.
Lời khuyên:
- Sử dụng HTTPS để bảo mật các yêu cầu API REST khi gửi JWT.
- Đảm bảo khóa bảo mật JWT là duy nhất và không được chia sẻ công khai.
- Sử dụng các plugin bảo mật khác như Wordfence để tăng cường bảo vệ cho trang web WordPress của bạn.