03.
— Section 3
Credentials
macOS Keychain
Mật khẩu của bạn không bao giờ chạm vào ổ đĩa.
jmapcli không lưu bất kỳ bí mật nào trên ổ đĩa. Mật khẩu (hoặc bearer token) của bạn được lưu trong Keychain đăng nhập macOS; tệp tài khoản — ~/.config/jmapcli/config.json, chế độ 0600 — chỉ chứa URL máy chủ, tên người dùng và cờ mặc định. Chưa quen dùng Keychain từ terminal? Toàn bộ quy trình chỉ gồm ba lệnh security tích hợp sẵn.
1 · Lưu bí mật — và đọc lại. macOS sẽ nhắc nhập giá trị, vì vậy bí mật không bao giờ được gõ trên dòng lệnh, hiển thị trên màn hình hay ghi vào lịch sử shell.
# store it — you’re prompted for the secret, nothing echoes
$ security add-generic-password -U -s jmap-password -a you@example.com -l "Boogie JMAP password" -w
# read it back at any time
$ security find-generic-password -s jmap-password -a you@example.com -w
# remove it
$ security delete-generic-password -s jmap-password -a you@example.com
- -s
- service — tên mà jmapcli tra cứu: jmap-password cho mật khẩu, hoặc jmap-token cho bearer token (ví dụ: Fastmail); chỉ đặt loại bạn sử dụng.
- -a
- account — địa chỉ email của bạn (tên người dùng giống như bạn cung cấp cho jmapcli).
- -l
- label — tên bạn sẽ thấy trong ứng dụng Keychain Access; -U cập nhật mục hiện có tại chỗ.
- -w
- không có giá trị — nhắc nhập bí mật. Đây là phần giữ cho bí mật không xuất hiện trong ~/.zsh_history và danh sách tiến trình.
2 · Trỏ jmapcli vào máy chủ của bạn. Đăng ký tài khoản một lần; bí mật được lấy trực tiếp từ mục Keychain bạn vừa lưu, vì vậy nó không bao giờ xuất hiện trên dòng lệnh.
$ jmapcli login --url https://mail.example.com --username you@example.com \
--password "$(security find-generic-password -s jmap-password -a you@example.com -w)"
# token auth: swap --password for --token (and store under jmap-token above)
$ jmapcli list # from here on, every command reads the Keychain for you
3.1
Không có gì trong lịch sử, nhật ký — hay ngữ cảnh của AI
Khi bí mật đã nằm trong Keychain, các lệnh hàng ngày (list, send, draft, sync) không bao giờ mang theo mật khẩu, vì vậy nó không thể bị ghi lại trong ~/.zsh_history, danh sách tiến trình hay nhật ký CI. Đó chính là điều khiến jmapcli an toàn khi được điều khiển từ các công cụ terminal AI — agent nhận được một JMAP client, chứ không bao giờ là bí mật của bạn.
— zsh
CI · agents
3.2
Xoay vòng mật khẩu hoặc đăng xuất
Đã thay đổi mật khẩu? Chạy lại dòng security add-generic-password … -w — -U sẽ ghi đè tại chỗ. Để xóa tài khoản, jmapcli logout xóa cả mục cấu hình lẫn bí mật Keychain trong một bước (--all xóa mọi tài khoản).
— rotate
logout
3.3
Mỗi Mac độc lập — theo thiết kế
Keychain đăng nhập không được đồng bộ qua iCloud — đây là ranh giới có chủ đích, để mật khẩu không bao giờ rời khỏi chiếc Mac mà bạn đã nhập vào. Lặp lại bước security một lần trên mỗi Mac; config.json có thể được đặt trong thư mục home đồng bộ vì nó không chứa bí mật nào.
— per
machine