Bỏ qua để đến nội dung

Xác thực CLI

~2 phút đọc

dtp có hai cách xác thực: đăng nhập bằng trình duyệt cho người dùng trên máy cá nhân, và khoá API cho script chạy không người trông (CI). Chọn đúng cách để giữ quyền ở mức nhỏ nhất cần dùng.

dtp login dùng luồng thiết bị OAuth (RFC 8628):

  1. CLI in một mã ngắn và địa chỉ xác nhận, đồng thời cố mở trình duyệt.
  2. Bạn đăng nhập vào Dòng Tiền Pro ở trình duyệt và nhập hoặc xác nhận mã đó.
  3. CLI nhận token và dừng chờ. CLI kiểm tra bên cấp token đúng là Dòng Tiền Pro (iss, RFC 9207) trước khi lưu.

Cách này hoạt động cả trên máy từ xa không có trình duyệt: mở địa chỉ xác nhận ở máy khác, nhập mã ở đó. dtp whoami cho biết bạn đang dùng danh tính nào.

Token đăng nhập được lưu trong tệp credentials.json của thư mục cấu hình (xem cấu hình), chỉ chủ sở hữu đọc được (quyền 0600). Lệnh dtp logout xoá tệp này.

Trong CI không có người để đăng nhập. Đặt biến môi trường DTP_API_KEY bằng một khoá có scope tối thiểu, lấy từ trình quản lý bí mật của CI; CLI dùng nó thay cho phiên đăng nhập đã lưu. Dùng khoá dt_test_… cho kiểm thử tự động. Xem Xác thực về khoá và scope.

Phiên dtp login là một phiên OAuth của người dùng, không phải khoá API. Phiên này không được dùng để duyệt, khoá kỳ, xem số tài khoản đầy đủ hay quản lý khoá, nên một token CLI bị lộ không đủ để làm các việc nhạy cảm đó, và không được tính là người duyệt trong quy trình hai người. Những việc ấy chỉ làm được trong ứng dụng web sau khi xác thực lại.

CLI chỉ nói chuyện với địa chỉ API nằm trong danh sách cho phép; nó từ chối --api-url trỏ tới máy chủ lạ để token không bị gửi nhầm chỗ.

Phiên đăng nhập của CLI hiện trong mục Bảo mật của tài khoản (ví dụ "dtp CLI · token thiết bị"); thu hồi ở đó để đăng xuất từ xa. Khoá API dùng trong CI thu hồi ở trang Nhà phát triển.

Quyền cần có của từng lệnh nằm ở trang của lệnh đó trong tham chiếu lệnh.