Xác thực Mã thông báo TOTP bằng Mã Python Tùy chỉnh - Quy trình làm việc n8n

Xác thực các khóa bí mật Mật khẩu dùng một lần dựa trên thời gian (TOTP) trực tiếp trong luồng công việc n8n của bạn bằng mã Python tùy chỉnh. Tích hợp logic 2FA bảo mật với mẫu n8n linh hoạt này.

Xem trước Workflow

Sẵn sàng tự động hóa chưa?

Tải xuống mẫu quy trình làm việc n8n này và bắt đầu sử dụng ngay lập tức.

Các node được sử dụng trong n8n

Đối tượng phù hợp


  • Kỹ sư bảo mật: Triển khai các cơ chế xác thực hai yếu tố (2FA) tùy chỉnh.

  • Nhà phát triển Backend: Tích hợp các bước xác thực an toàn trực tiếp vào các lệnh gọi API backend bằng n8n.

  • Chuyên gia tự động hóa: Người dùng cần giải pháp xác minh TOTP độc lập mà không phụ thuộc vào thông tin xác thực n8n bên ngoài hoặc các dịch vụ chuyên dụng.

  • Bất kỳ ai đang tìm kiếm một ví dụ nâng cao về việc sử dụng nút Code n8n cho các hoạt động mật mã.

Tổng quan

Mẫu n8n chuyên biệt này cung cấp một phương pháp cực kỳ linh hoạt để xác minh mã Mật khẩu dùng một lần dựa trên thời gian (TOTP). Không giống như các phương pháp tiêu chuẩn có thể yêu cầu thiết lập thông tin xác thực n8n cụ thể, luồng công việc n8n này sử dụng một tập lệnh Python mạnh mẽ, độc lập để xử lý toàn bộ quá trình xác minh—từ giải mã base32 đến tạo HMAC-SHA
1.

The primary value of this n8n workflow is its independence. It allows you to dynamically retrieve the user's TOTP secret (e.g., from a database) and immediately check the user-provided code against the current time interval. This is essential for building custom sign-in or secure action verification flows, offering a powerful core logic flow control within your overall n8n automation.

Cách thức hoạt động

Tự động hóa này được khởi tạo bởi nút Manual Trigger (Kích hoạt thủ công) của n8n, thường được sử dụng để kiểm tra hoặc khi được thực thi như một luồng con.


  1. Bắt đầu và Khởi tạo (Khi nhấp vào ‘Test workflow’): Luồng bắt đầu, thường thay thế kích hoạt n8n ban đầu này bằng một webhook sản xuất hoặc truy vấn cơ sở dữ liệu.

  2. Xác định Đầu vào Ví dụ (EXAMPLE FIELDS): Nút n8n có nhãn 'EXAMPLE FIELDS' đặt hai đầu vào quan trọng: totpsecretexample (khóa bí mật Base32 của người dùng) và codetoverify_example (mã 6 chữ số do người dùng cung cấp).

  3. Thực thi Logic Xác thực (TOTP VALIDATION): Cốt lõi của luồng công việc n8n nằm ở nút Code n8n này. Nó thực thi một tập lệnh Python toàn diện nhập các thư viện mật mã cần thiết (hmac, hashlib). Tập lệnh giải mã khóa bí mật Base32, tính toán bộ đếm khoảng thời gian hiện tại, tạo mã TOTP dự kiến bằng HMAC-SHA1 và so sánh nó với mã đầu vào. Nó trả về trạng thái là 1 (hợp lệ) hoặc 0 (không hợp lệ).

  4. Định tuyến có Điều kiện (IF CODE IS VALID): Luồng sử dụng nút IF n8n để kiểm tra trạng thái đầu ra. Nếu trạng thái là 1, luồng công việc n8n sẽ đi theo nhánh 'true' (đúng) để xác thực thành công; nếu là 0, nó sẽ đi theo nhánh 'false' (sai), cho phép xử lý lỗi tùy chỉnh hoặc từ chối thông tin xác thực.

Hướng dẫn cài đặt

Để triển khai luồng công việc n8n này, hãy làm theo các bước sau:


  1. Nhập (Import): Sao chép dữ liệu JSON được cung cấp và dán trực tiếp vào phiên bản n8n của bạn bằng cách sử dụng menu 'New' (Mới) > 'Import from JSON' (Nhập từ JSON).

  2. Thiết lập Kích hoạt (Trigger Setup): Kích hoạt n8n ban đầu được đặt thành 'Manual Trigger' (Kích hoạt thủ công). Để sử dụng trong môi trường sản xuất, hãy thay thế nó bằng bộ kích hoạt mong muốn của bạn (ví dụ: Webhook, Cuộc gọi API hoặc Truy vấn Cơ sở dữ liệu).

  3. Tùy chỉnh Đầu vào Dữ liệu: Tìm nút Code n8n có tên 'TOTP VALIDATION'.

Xem lại các dòng 39 và 40 trong mã Python.
Hiện tại, chúng tham chiếu đến đầu ra của nút 'EXAMPLE FIELDS' (input.item.json.totpsecret_example).
* Bước quan trọng: Sửa đổi các dòng này để truy xuất khóa bí mật và mã từ nguồn dữ liệu thực tế của bạn (ví dụ: nếu đứng trước bởi một nút Webhook, bạn có thể tham chiếu $json.body.secret$json.body.code).

  1. Kiểm tra: Sử dụng nút 'Test workflow' (Kiểm tra luồng công việc) sau khi đặt dữ liệu ví dụ để đảm bảo logic Python tùy chỉnh hoạt động chính xác trong môi trường n8n của bạn.

Chi tiết Node

Khi nhấp vào ‘Test workflow’ (Nút Manual Trigger n8n): Đóng vai trò là điểm bắt đầu để kiểm tra mẫu n8n này. Trong hệ thống thực tế, bộ kích hoạt n8n này sẽ được thay thế bằng bộ kích hoạt sản xuất.
EXAMPLE FIELDS (Nút Set n8n): Một nút tiện ích chỉ được sử dụng để kiểm tra. Nó tiêm dữ liệu mẫu (một totpsecretexamplecodetoverifyexample) vào cấu trúc luồng công việc n8n trước khi xác thực.
TOTP VALIDATION (Nút Code n8n): Lõi chức năng. Nút n8n này chứa một tập lệnh Python triển khai tiêu chuẩn RFC 6238 cho TOTP. Các cấu hình chính bao gồm đặt ngôn ngữ thành Python và xác định hàm verifytotp để so sánh mã thông báo đã tính toán với mã đầu vào.
IF CODE IS VALID (Nút IF n8n): Một nút kiểm soát luồng logic cốt lõi của n8n. Nó kiểm tra trạng thái đầu ra ($json.status) từ nút Code n8n đứng trước. Nếu trạng thái bằng 1, việc xác thực thành công, điều hướng luồng công việc n8n cho phù hợp.

Các quy trình n8n liên quan

miễn phí

Node: 5 Node
Đã cập nhật: Tháng 12 26 2025
Xem tất cả
Tạo bởi
Bazhard
Bazhard

Đặc sắc*