Giao diện
@digiforce-nc/plugin-auth-sms
Plugin xác thực qua SMS OTP — cho phép user đăng nhập bằng số điện thoại và mã xác minh gửi qua tin nhắn. Phụ thuộc vào plugin-verification để quản lý luồng gửi và xác minh OTP.
Plugin này làm gì?
SMSAuth kế thừa BaseAuth, triển khai xác thực OTP (One-Time Password) qua SMS. Không sử dụng OAuth hay redirect — thay vào đó, user nhập số điện thoại, nhận mã OTP qua SMS, rồi nhập mã để đăng nhập. Plugin chỉ hoạt động khi plugin-verification đã được cài đặt.
Đặc điểm chính
| # | Đặc điểm | Chi tiết |
|---|---|---|
| 1 | OTP-based | Không OAuth, không redirect — xác thực bằng mã OTP gửi qua SMS |
| 2 | Peer dependency | Yêu cầu plugin-verification — không tự gửi SMS |
| 3 | Verification flow | Sử dụng verificationManager để request/verify OTP |
| 4 | Phone-based lookup | Tìm local user theo số điện thoại |
| 5 | Legacy migration | Hỗ trợ migration từ smsAuthEnabled cũ sang authenticators mới |
Luồng xác thực
Cấu hình
| Tham số | Kiểu | Mô tả |
|---|---|---|
public.verifier | string | Tên verifier sử dụng (phải cấu hình trong plugin-verification) |
public.autoSignup | boolean | Tự tạo tài khoản nếu user chưa tồn tại |
Cấu hình phụ thuộc (plugin-verification)
SMS verifier cần được cấu hình riêng trong plugin-verification với provider cụ thể:
| Provider | Cấu hình cần thiết |
|---|---|
| Twilio | accountSid, authToken, from |
| Aliyun SMS | accessKeyId, accessKeySecret, signName, templateCode |
| Tencent SMS | secretId, secretKey, appId, signName, templateId |
Database
Plugin sử dụng các bảng từ plugin-verification:
| Bảng | Mô tả |
|---|---|
verifiers | Cấu hình verifier (tên, provider, thông số) |
otpRecords | Bản ghi OTP đã gửi (uuid, code, phone, expiresAt) |
authenticators | Bản ghi authenticator (migration từ smsAuthEnabled) |
API endpoints
| Endpoint | Quyền | Mô tả |
|---|---|---|
auth:signIn | Public | Đăng nhập — gửi kèm authenticator, phone, uuid, code |
verification:create | Public | Yêu cầu gửi OTP (thuộc plugin-verification) |
Thành phần client
| Thành phần | Mô tả |
|---|---|
SigninPage | Trang đăng nhập SMS với VerificationForm (nhập SĐT → nhập OTP) |
Options | Form cấu hình SMS auth trong Settings, có VerifierSelect |
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/plugin-verification | Quản lý OTP: gửi SMS, lưu/verify mã (peer dependency) |
@digiforce-nc/auth | Base auth framework (peer) |
@digiforce-nc/server | Server framework (peer) |
@digiforce-nc/client | Client framework (peer) |