Xác thực và token
UniAI có ba loại token — mỗi loại cho trình duyệt, CLI và daemon. Khi nào dùng cái nào.
UniAI có ba loại token, mỗi loại cho một ngữ cảnh: Web UI trên trình duyệt, dòng lệnh và script, và daemon. Cả ba đều đại diện cho cùng một tài khoản của bạn, nhưng phạm vi và vòng đời khác nhau.
Ba loại token
| Token | Định dạng | Dùng ở đâu | Vòng đời |
|---|---|---|---|
| Cookie JWT | cookie multica_auth (HttpOnly) | Trình duyệt web | 30 ngày |
| Personal access token (PAT) | Tiền tố mul_ | CLI, script, gọi API trực tiếp | Mặc định không hết hạn; tạo qua API có thể truyền expires_in_days |
| Daemon token | Tiền tố mdt_ | Giao tiếp giữa daemon và server | Daemon tự quản lý |
Trong sử dụng hằng ngày, bạn chỉ trực tiếp đụng đến hai loại đầu. Token của daemon được uniai daemon login tự tạo và làm mới — bạn không cần bận tâm đến nó.
Mỗi token gọi được gì
| Route API | Cookie JWT | PAT | Daemon token |
|---|---|---|---|
/api/user/* (hành động mức người dùng) | ✓ | ✓ | ✗ |
/api/workspaces/:id/* (mức không gian làm việc) | ✓ | ✓ | ✗ |
/api/daemon/* (chỉ daemon) | ✗ | ✓ | ✓ |
WebSocket /ws (đẩy thời gian thực) | ✓ (cookie) | ✓ (xác thực qua tin nhắn đầu) | ✗ |
PAT gọi được gần như mọi thứ — nó mang toàn bộ quyền hạn của bạn. Daemon token chỉ làm được việc daemon cần: lấy task và báo kết quả.
Cả hai đều gọi được /api/daemon/*, nhưng phạm vi khác nhau. PAT đại diện cả một người dùng — xác thực xong, nó thấy mọi không gian làm việc mà bạn là thành viên. Daemon token bị gắn cố định vào một không gian làm việc lúc tạo và chỉ đụng được tài nguyên trong đó. Ở production, hãy chạy daemon bằng daemon token — đừng đi tắt bằng PAT, kẻo bạn cấp cho daemon nhiều quyền hơn hẳn mức nó cần.
Đăng nhập
Email + mã xác thực
- Nhập email; server gửi mã 6 chữ số.
- Nhập mã; server cấp cookie JWT (trình duyệt) hoặc đổi lấy PAT (CLI).
Google OAuth
Bấm Đăng nhập với Google và đi qua callback OAuth chuẩn.
Tạo, xem và thu hồi PAT
Tạo PAT có hai cách:
- Web UI: Cài đặt → Personal Access Tokens → New token
- CLI:
uniai logintự tạo nếu chưa có PAT cục bộ
PAT đầy đủ chỉ hiển thị đúng một lần lúc tạo. Sau khi tải lại trang hay đóng hộp thoại, bạn sẽ không xem lại được nữa.
UniAI chỉ lưu hash của PAT trong cơ sở dữ liệu — chính server cũng không khôi phục được bản gốc. Chép và lưu ngay. Mất nó thì lựa chọn duy nhất là thu hồi và tạo cái mới.
Xem các PAT hiện có (tên, thời điểm tạo, lần dùng cuối — không phải token đầy đủ) nằm ở Cài đặt → Personal Access Tokens.
Thu hồi PAT: bấm Revoke trong danh sách. Thu hồi có hiệu lực ngay — request kế tiếp bằng PAT đó bị từ chối với 401.
Đăng xuất chỉ xóa token cục bộ
Khi bạn chạy uniai auth logout hoặc bấm đăng xuất trên Web UI:
- Token cục bộ bị xóa — CLI gỡ PAT khỏi
~/.multica/config.json; trình duyệt xóa cookie. - PAT vẫn hợp lệ trên server — nếu ai đó lấy được PAT của bạn trước khi bạn đăng xuất (ví dụ chép sang máy khác), họ vẫn dùng được.
Nghi PAT bị lộ thì đừng chỉ đăng xuất. Vào Cài đặt → Personal Access Tokens và thu hồi token. Chỉ thu hồi mới vô hiệu hóa ngay một token bị lộ.
Bước tiếp theo
- Tham chiếu lệnh CLI — mọi lệnh CLI đều tự động xác thực
- Daemon và runtime — daemon token từ đâu ra