Giao diện
Hướng dẫn cài đặt Apple Auth
Hướng dẫn thiết lập xác thực Sign in with Apple trong Digiforce, bao gồm cấu hình Apple Developer và biến môi trường.
Điều kiện tiên quyết
- Digiforce đã cài đặt và chạy ổn định
- Plugin
@digiforce-nc/plugin-auth-appleđã được kích hoạt - Tài khoản Apple Developer Program (99 USD/năm)
- Biến môi trường
APP_BASE_URLđã được cấu hình
Bước 1: Cấu hình trên Apple Developer
Tạo App ID
- Truy cập Apple Developer → Certificates, Identifiers & Profiles
- Vào Identifiers → App IDs → Register
- Bật capability Sign in with Apple
Tạo Services ID
- Vào Identifiers → Services IDs → Register
- Đặt Identifier (ví dụ:
com.example.digiforce.auth) — đây sẽ làclientId - Bật Sign in with Apple → Configure:
- Domains:
app.example.com(domain Digiforce) - Return URLs:
https://app.example.com/api/apple:redirect
- Domains:
- Save
Tạo Private Key
- Vào Keys → Register a New Key
- Bật Sign in with Apple → Associate với App ID
- Download file
.p8(chỉ tải được một lần!) - Ghi nhớ Key ID
Tạo Client Secret (JWT)
Apple client secret là JWT ký bằng private key .p8:
bash
# Thông tin cần thiết:
# - Team ID: từ Apple Developer account
# - Key ID: từ key vừa tạo
# - Services ID: clientId
# - Private key: file .p8Client secret JWT có thời hạn tối đa 6 tháng — cần renew định kỳ.
Bước 2: Cấu hình biến môi trường
Plugin Apple Auth yêu cầu biến APP_BASE_URL:
bash
APP_BASE_URL=https://app.example.comBiến này dùng để xây dựng redirect URL. Nếu thiếu, plugin không thể tạo callback URL đúng.
Bước 3: Tạo authenticator trong Digiforce
- Vào Settings → Authentication → Add new
- Chọn loại Apple
- Đặt tên authenticator (ví dụ:
apple-login) - Điền thông số:
| Trường | Giá trị |
|---|---|
| Client ID | Services ID từ Apple (ví dụ: com.example.digiforce.auth) |
| Client Secret | JWT secret tạo từ private key |
| Redirect URL | (tùy chọn) URL redirect tùy chỉnh sau đăng nhập |
Bước 4: Kiểm tra đăng nhập
- Mở cửa sổ ẩn danh
- Tại trang đăng nhập, nhấn Sign in with Apple
- Apple hiển thị popup xác nhận → chọn chia sẻ email (real hoặc relay)
- Sau khi xác nhận, quay về Digiforce với session
Lưu ý quan trọng
Apple chỉ gửi tên user lần đầu tiên
Apple chỉ gửi thông tin tên (firstName, lastName) trong user JSON khi user authorize lần đầu tiên. Các lần đăng nhập sau, Apple chỉ gửi code — không gửi tên.
Nếu lần đầu bị lỗi và không lưu được tên, user phải:
- Vào Apple ID Settings → Security → Apps Using Apple ID
- Xóa ứng dụng Digiforce
- Đăng nhập lại (Apple sẽ gửi tên)
Email relay
User có thể chọn "Hide My Email" — Apple tạo email relay dạng xxx@privaterelay.appleid.com. Email này vẫn forward về email thật của user.
userBindField chỉ hỗ trợ email
Plugin Apple Auth chỉ hỗ trợ userBindField: email. Binding theo username chưa được implement.