Giao diện
FAQ & Troubleshooting — Apple Auth
Các câu hỏi thường gặp và cách xử lý sự cố khi sử dụng plugin Sign in with Apple.
Lỗi "user_cancelled_authorize"
Triệu chứng: Apple redirect về Digiforce với error user_cancelled_authorize.
Nguyên nhân: User nhấn "Cancel" hoặc đóng popup Apple khi đang xác nhận đăng nhập.
Giải pháp: Đây là hành vi bình thường — không phải lỗi. Plugin nên hiển thị lại trang đăng nhập để user thử lại.
APP_BASE_URL không khớp với Apple Return URL
Triệu chứng: Apple báo lỗi "Invalid redirect_uri" hoặc callback về sai URL.
Nguyên nhân: Biến APP_BASE_URL không khớp với Return URL đã đăng ký trong Apple Developer.
Kiểm tra:
Giá trị
APP_BASE_URLtrong environment:bashecho $APP_BASE_URL # Phải là: https://app.example.com (không có trailing slash)Return URL trong Apple Developer → Services ID → Sign in with Apple → Configure:
https://app.example.com/api/apple:redirectĐảm bảo protocol khớp:
httpsvshttpĐảm bảo domain khớp chính xác (không có www/ khác subdomain)
Giải pháp: Đồng bộ APP_BASE_URL với domain đã đăng ký tại Apple.
Apple chỉ gửi tên user một lần
Triệu chứng: User đăng nhập lần đầu bị lỗi, đăng nhập lại thành công nhưng không có tên (nickname).
Nguyên nhân: Apple chỉ gửi thông tin tên (firstName, lastName) trong user JSON ở lần authorize đầu tiên. Nếu lần đầu thất bại, tên sẽ mất.
Giải pháp cho user:
- Vào Settings → Apple ID → Sign-In & Security → Sign in with Apple (trên thiết bị Apple)
- Tìm ứng dụng Digiforce → Stop Using Apple ID
- Đăng nhập lại — Apple sẽ coi như lần đầu và gửi tên
Giải pháp cho admin: User có thể cập nhật tên thủ công trong profile Digiforce sau đó.
Email relay (Hide My Email)
Triệu chứng: Email user có dạng xxxx@privaterelay.appleid.com thay vì email thật.
Giải thích: User chọn "Hide My Email" khi authorize. Apple tạo email relay unique cho mỗi ứng dụng. Email gửi đến relay address sẽ được forward đến email thật.
Lưu ý:
- Email relay vẫn hoạt động bình thường cho liên kết user
- Nếu cần email thật, không có cách bắt buộc — đây là quyền riêng tư của user
- Relay email ổn định — cùng user luôn có cùng relay email cho cùng ứng dụng
Client secret hết hạn
Triệu chứng: Đăng nhập Apple bắt đầu thất bại sau một thời gian hoạt động tốt.
Nguyên nhân: Apple client secret JWT có thời hạn tối đa 6 tháng.
Giải pháp:
- Tạo JWT mới từ private key
.p8(không cần tạo key mới) - Cập nhật
clientSecrettrong authenticator settings - Đặt lịch nhắc renew trước khi hết hạn
Không thấy nút "Sign in with Apple" trên trang login
Kiểm tra:
- Authenticator Apple đã được tạo và bật (enabled) chưa?
- Plugin
@digiforce-nc/plugin-auth-appleđã kích hoạt chưa? clientIdđã điền chưa? (nút chỉ hiển thị khi có cấu hình đầy đủ)
Lỗi form_post trên một số reverse proxy
Triệu chứng: Apple callback báo lỗi hoặc mất data.
Nguyên nhân: Một số reverse proxy (nginx, Cloudflare) có giới hạn kích thước POST body hoặc không forward form data đúng cách.
Giải pháp:
- Nginx: tăng
client_max_body_size - Đảm bảo proxy forward header
Content-Type: application/x-www-form-urlencoded - Không strip POST body khi proxy