Bạn vừa triển khai xác thực JWT (JSON Web Token) trong API của mình. Nó tinh tế, không trạng thái và an toàn. Nhưng bây giờ là phần quan trọng: kiểm tra kỹ lưỡng. Làm thế nào để bạn xác minh rằng các điểm cuối được bảo vệ của mình từ chối chính xác các yêu cầu không có token? Làm thế nào để bạn kiểm tra thời hạn token? Làm thế nào để bạn mô phỏng các vai trò người dùng khác nhau?
Nếu bạn đang sử dụng các lệnh curl hoặc viết các script dùng một lần, bạn sắp khám phá một cách tốt hơn nhiều. Apidog biến việc kiểm thử JWT từ một công việc vặt thành một quy trình làm việc mạnh mẽ, hợp lý.
Trong hướng dẫn này, chúng ta sẽ xem xét chính xác cách kiểm thử xác thực JWT trong API bằng Apidog, bao gồm cách cấu hình, tự động hóa xác thực và tránh các lỗi thường gặp. Ngoài ra, chúng ta sẽ đề cập đến tất cả các phương thức xác thực mà Apidog hỗ trợ, vì vậy bạn biết rằng mình đã được bao phủ bất kể ngăn xếp công nghệ của bạn là gì.
Bây giờ, chúng ta hãy cùng tìm hiểu chính xác cách thành thạo việc kiểm thử xác thực JWT với Apidog và khám phá nhiều phương thức xác thực mà nó hỗ trợ.
Tại sao kiểm thử JWT lại quan trọng
Xác thực JWT đã trở thành tiêu chuẩn để bảo mật các API hiện đại. Nhưng cùng với sức mạnh của nó là sự phức tạp cần được kiểm thử nghiêm ngặt:
- Xác thực Token: API của bạn có xác thực chữ ký token một cách chính xác không?
- Bảo vệ Điểm cuối: Các điểm cuối của bạn có thực sự được bảo vệ mà không có token hợp lệ không?
- Kiểm soát truy cập dựa trên vai trò (RBAC): Các token khác nhau (với các quyền khác nhau) có nhận được mức độ truy cập chính xác không?
- Thời hạn Token: API của bạn có từ chối đúng cách các token đã hết hạn không?
- Xử lý lỗi: Bạn có trả về các phản hồi
401 Unauthorizedrõ ràng với các thông báo hữu ích không?
Kiểm thử thủ công các kịch bản này bằng các công cụ dòng lệnh hoặc plugin trình duyệt rất tẻ nhạt và dễ xảy ra lỗi. Apidog cung cấp một phương pháp tập trung, trực quan và tự động để xử lý tất cả những điều này.
Bắt đầu: Thiết lập xác thực JWT của bạn trong Apidog

Apidog giúp việc cấu hình xác thực JWT trở nên trực quan. Hãy cùng tìm hiểu từng bước một.
Bước 1: Tạo yêu cầu xác thực của bạn
Đầu tiên, bạn cần lấy một token JWT từ điểm cuối xác thực của mình (ví dụ: POST /api/auth/login).
Trong Apidog, hãy tạo một yêu cầu POST mới.
Đặt URL đến điểm cuối đăng nhập của bạn.
Trong tab Body, thêm các thông tin đăng nhập cần thiết (thường là JSON như {"username": "test", "password": "test"}).
Gửi yêu cầu. Bạn sẽ nhận được phản hồi 200 OK với một token trong phần thân, thường trông như sau:
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "bearer",
"expires_in": 3600
}
Bước 2: Trích xuất và lưu trữ Token
Đây là nơi Apidog phát huy tác dụng. Thay vì sao chép thủ công token cho mỗi yêu cầu, bạn có thể tự động hóa việc này.
Trong tab Tests của yêu cầu đăng nhập, hãy thêm một script để trích xuất token từ phản hồi và lưu nó dưới dạng một biến môi trường.
// Apidog Test Script Example
const responseJson = pm.response.json();
// Extract the access_token from the response
const accessToken = responseJson.access_token;
// Store it in an environment variable named 'jwt_token'
pm.environment.set("jwt_token", accessToken);
Chạy yêu cầu. Apidog sẽ thực thi script này và lưu token vào môi trường hiện hoạt của bạn.
Bước 3: Cấu hình xác thực JWT Bearer cho các điểm cuối được bảo vệ
Bây giờ, đối với bất kỳ điểm cuối nào yêu cầu xác thực JWT (ví dụ: GET /api/users/me):
- Tạo một yêu cầu mới đến điểm cuối được bảo vệ của bạn.
- Đi đến tab Auth.
- Từ danh sách thả xuống Type, chọn "JWT Bearer".
Đây là phần cốt lõi của việc thiết lập. Loại xác thực JWT Bearer của Apidog được thiết kế đặc biệt cho tiêu chuẩn này.
- Trong trường Token, bạn có thể tham chiếu biến môi trường đã lưu của mình bằng cách sử dụng dấu ngoặc kép:
{{jwt_token}}. - Trường Prefix thường là
Bearer(là tiêu chuẩn và được Apidog tự động áp dụng cho loại xác thực này).
Điều gì xảy ra bên trong? Khi bạn gửi yêu cầu này, Apidog sẽ tự động định dạng tiêu đề Authorization cho bạn:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Không cần chỉnh sửa tiêu đề thủ công!
Quy trình kiểm thử JWT nâng cao với Apidog
1. Kiểm thử thời hạn và làm mới Token
Một bài kiểm thử mạnh mẽ nên kiểm tra cách API của bạn xử lý các token đã hết hạn.
- Mô phỏng hết hạn: Bạn có thể thay đổi thủ công biến môi trường
jwt_tokenthành một chuỗi token đã hết hạn và chạy lại các yêu cầu điểm cuối được bảo vệ của mình. Chúng sẽ trả về401 Unauthorized. - Tự động hóa luồng làm mới: Nếu API của bạn có điểm cuối làm mới token (
POST /api/auth/refresh), bạn có thể xây dựng một chuỗi kiểm thử trong Apidog:
- Yêu cầu một điểm cuối được bảo vệ bằng một token đã hết hạn (mong đợi
401). - Gọi điểm cuối làm mới bằng refresh token để lấy
access_tokenmới. - Tự động cập nhật biến môi trường
jwt_tokenbằng token mới. - Thử lại điểm cuối được bảo vệ ban đầu (bây giờ mong đợi
200 OK).
2. Kiểm thử kiểm soát truy cập dựa trên vai trò (RBAC)
Kiểm thử xem người dùng với quyền "role": "user" có không thể truy cập các điểm cuối quản trị hay không.
- Tạo các biến môi trường riêng biệt cho các token người dùng khác nhau:
{{admin_jwt_token}}và{{user_jwt_token}}. - Đối với một điểm cuối chỉ dành cho quản trị viên (ví dụ:
DELETE /api/users/123), hãy tạo hai trường hợp kiểm thử trong Apidog:
- Trường hợp kiểm thử A: Sử dụng
{{admin_jwt_token}}. Mong đợi:200 OKhoặc204 No Content. - Trường hợp kiểm thử B: Sử dụng
{{user_jwt_token}}. Mong đợi:403 Forbidden.
3. Bạn có thể chạy chúng như một phần của bộ kiểm thử tự động để đảm bảo logic RBAC của bạn luôn được thực thi.
3. Kiểm thử các Token bị lỗi hoặc không hợp lệ
Apidog giúp dễ dàng kiểm thử các trường hợp biên:
- Không có Token: Chỉ cần tắt hoặc xóa cấu hình xác thực cho một yêu cầu và gửi nó. Xác minh rằng bạn nhận được
401. - Token bị lỗi: Đặt biến
jwt_tokenthành một chuỗi ngẫu nhiên như"invalid"và gửi yêu cầu. Nên trả về401. - Chữ ký bị giả mạo: Bạn có thể sử dụng các công cụ trực tuyến để giải mã một JWT hợp lệ, thay đổi một quyền và mã hóa lại nó bằng một chữ ký sai. Lưu token bị giả mạo này vào môi trường của bạn và kiểm thử với nó.
Ngoài JWT: Toàn bộ các phương thức xác thực trong Apidog

Mặc dù JWT Bearer cực kỳ phổ biến, các API hiện đại sử dụng nhiều phương thức xác thực khác nhau. Điểm mạnh của Apidog là khả năng hỗ trợ toàn diện tất cả chúng trong một giao diện hợp nhất.
1. Xác thực bằng API Key
Phương pháp đơn giản và phổ biến nhất để giao tiếp giữa các máy.
- Trong Apidog: Chọn "API Key" từ danh sách thả xuống loại xác thực.
- Cấu hình: Chọn xem khóa được đặt trong tiêu đề (ví dụ:
X-API-Key) hay trong các tham số truy vấn. Nhập giá trị khóa của bạn, cũng có thể tham chiếu một biến môi trường{{api_key}}.
2. Xác thực cơ bản
Yêu cầu nhập tên người dùng và mật khẩu cổ điển, thường được sử dụng cho các hệ thống cũ hoặc các điểm cuối đăng nhập ban đầu.
- Trong Apidog: Chọn "Basic Auth".
- Cấu hình: Nhập tên người dùng và mật khẩu. Apidog tự động mã hóa chúng bằng base64 và thêm tiêu đề
Authorization: Basic ....
3. OAuth 2.0
Tiêu chuẩn công nghiệp để ủy quyền và cấp phép người dùng. Đây là nơi Apidog trở nên cực kỳ mạnh mẽ.
- Trong Apidog: Chọn "OAuth 2.0".
- Luồng được hỗ trợ: Nó hướng dẫn bạn cấu hình luồng mã ủy quyền (phổ biến nhất cho các ứng dụng web), luồng thông tin xác thực máy khách (cho giao tiếp giữa các máy) và các luồng khác.
- Quản lý Token tự động: Apidog có thể xử lý toàn bộ quá trình OAuth chuyển hướng đến máy chủ ủy quyền, thu thập mã ủy quyền và đổi lấy access token. Sau đó, nó tự động đính kèm token vào các yêu cầu tiếp theo dưới dạng Bearer token.
4. Xác thực Hawk
Một lược đồ ít phổ biến hơn nhưng an toàn, sử dụng mã xác thực tin nhắn.
- Trong Apidog: Chọn "Xác thực Hawk" và điền ID, khóa và thuật toán yêu cầu.
5. Chữ ký AWS
Rất quan trọng để kiểm thử các API được lưu trữ trên Amazon Web Services.
- Trong Apidog: Chọn "Chữ ký AWS".
- Cấu hình: Nhập Khóa truy cập AWS, Khóa bí mật, Khu vực và Tên dịch vụ của bạn (ví dụ:
execute-api). Apidog tự động tính toán và thêm các tiêu đề AWS Signature v4 phức tạp cho bạn.
6. Xác thực Digest
Một giao thức phản hồi thách thức an toàn hơn so với Basic Auth.
- Trong Apidog: Chọn "Xác thực Digest" và cung cấp tên người dùng và mật khẩu.
Cách tiếp cận thống nhất này có nghĩa là bạn có thể kiểm thử mọi điểm cuối của API, bất kể phương thức xác thực của nó là gì, trong cùng một dự án và giao diện.
Tạo bộ kiểm thử mạnh mẽ và tài liệu
Khi bạn đã cấu hình xác thực và kiểm thử các điểm cuối của mình theo cách thủ công, Apidog cho phép bạn mở rộng điều này thành các quy trình làm việc chuyên nghiệp.
1. Xây dựng các bộ sưu tập kiểm thử
Nhóm tất cả các yêu cầu cho một tính năng cụ thể (ví dụ: "Quản lý người dùng") vào một bộ sưu tập. Bạn có thể chạy toàn bộ bộ sưu tập chỉ với một cú nhấp chuột, đảm bảo tất cả các điểm cuối được bảo vệ bằng JWT của bạn hoạt động cùng nhau một cách chính xác.
2. Tham số hóa bằng môi trường
Sử dụng các môi trường Apidog khác nhau (ví dụ: "Development", "Staging", "Production") để lưu trữ các tập hợp biến khác nhau. {{jwt_token}} của bạn trong môi trường "Development" có thể trỏ đến máy chủ cục bộ của bạn, trong khi trong "Production", nó sử dụng thông tin xác thực trực tiếp (nhưng để kiểm thử). Chuyển đổi ngữ cảnh ngay lập tức.
3. Tạo và chia sẻ tài liệu
Apidog tự động tạo tài liệu API đẹp mắt, tương tác từ các yêu cầu của bạn. Tài liệu này sẽ hiển thị rõ ràng những điểm cuối nào yêu cầu xác thực JWT Bearer, giúp các nhà phát triển frontend hoặc di động của bạn hiểu rõ ngay lập tức.
Kết luận: Từ tẻ nhạt đến đột phá
Kiểm thử xác thực JWT không còn cần phải là một quy trình thủ công, dễ vỡ. Apidog cung cấp một giải pháp hoàn chỉnh, tích hợp xử lý toàn bộ vòng đời: từ việc lấy token, đến cấu hình xác thực cho các điểm cuối, đến việc xây dựng các bộ kiểm thử tự động xác thực cả các kịch bản tích cực và tiêu cực.
Sự hỗ trợ của nó vượt xa JWT để bao gồm toàn bộ các tiêu chuẩn xác thực API hiện đại API Key, Basic, OAuth 2.0 và nhiều hơn nữa tất cả trong cùng một giao diện trực quan.
Bằng cách áp dụng Apidog, bạn chuyển từ việc chỉ đơn thuần kiểm tra xem API của mình có hoạt động hay không sang tự tin xác minh rằng mô hình bảo mật của nó mạnh mẽ, đáng tin cậy và sẵn sàng cho sản xuất. Hãy ngừng sao chép và dán token; hãy bắt đầu xây dựng một chiến lược kiểm thử tự động, chuyên nghiệp.
