2-Factor Authentication (Xác thực 2 yếu tố): Là một giải pháp bảo mật sử dụng công nghệ Cloud messaging để xác nhận danh tính của người dùng và bảo vệ hệ thống khỏi các cuộc tấn công lừa đảo. Một mã PIN (sử dụng 1 lần) được tạo ra và gửi tới số điện thoại của người dùng (sms hoặc voice call). Người dùng nhận được mã PIN và nhập vào ứng dụng để xác nhận danh tính. Nếu mã PIN nhập vào là đúng người dùng mới được phép tiếp tục các bước tiếp theo để sử dụng ứng dụng.
SpeedSMS 2-Factor Authentication API (2FA API) cho phép bạn dễ dàng thêm một lớp bảo mật vào hệ thống của bạn thông qua một API duy nhất. Ngoài ra bạn cũng có thể sử dùng 2FA API để tạo và gửi mã xác nhận tới người dùng.
Tất cả các API sẽ được bắt đầu bằng địa chỉ url:
http://api.speedsms.vn/index.php/
Hoặc
https://api.speedsms.vn/index.php/
Các bạn nên sử dụng địa chỉ HTTPS để đảm bảo tính bảo mật.
Để sử dụng 2FA API bạn cần phải đăng ký một tài khoản tại địa chỉ https://connect.speedsms.vn. Mỗi tài khoản đăng ký sẽ được cấp một API access token. Ứng dụng của bạn sẽ sử dụng API access token này để xác thực (authenticate) với SpeedSMS.
API access token được gửi kèm với bản tin HTTP request thông qua cơ chế xác thực HTTP Basic Authentication. Trong đó API access token sẽ đóng vai trò như là một username.
Ví dụ: để gọi API thông qua curl:
curl -i -u "{API access token}:x" "https://api.speedsms.vn/index.php/user/info"
Để lấy API access token, bạn vui lòng đăng nhập tại địa chỉ https://connect.speedsms.vn, sau đó click vào menu "Settings" -> "Profile" để lấy thông tin API access token
SpeedSMS 2FA API cho phép ưng dụng của bạn gọi tối đa 60 requests trong vòng 60 giây. Nếu bạn gọi quá số lần requests. Bạn sẽ nhận được response:
{"name":"Too Many Requests","message":"Rate limit exceeded.","code":0,"status":429}
Lúc này bạn cần phải kiểm tra tham số X-Rate-Limit-Reset trong header của bản tin HTTP để lấy số giây cần phải đợi và thực hiện cơ chế sleep trước khi tiếp tục thực hiện requests.Trong trường hợp bạn cần nhiều hơn 60 requests vui lòng liên hệ để chúng tôi nâng hạn mức cho bạn.
POST /pin/create API cho phép bạn tạo ra một mã PIN và gửi mã PIN này tới người dùng theo cấu hình của 2FA application đã tạo trước đó.
curl -i -u "{Access token}" -H "Content-Type: application/json" -X POST -d '{"to": "phone number", "content": "noi dung sms", "app_id": "2FA Application ID"}' https://api.speedsms.vn/index.php/pin/create
{ "status": "success", "code": "00", "data": { "pin_code": "generated pin code", "tranId": "transaction id", "totalPrice": total price number } }
{ "status": "error", "code": "error code", "message": "error description" }
POST /pin/verify API cho phép bạn verify nếu mã PIN người dùng nhập vào là đúng hoặc sai
curl -i -u "{Access token}" -H "Content-Type: application/json" -X POST -d '{"phone": "phone number", "app_id": "Application id", "pin_code": "mã PIN mà người dùng nhập vào"}' https://api.speedsms.vn/index.php/pin/verify
{ "status": "success", "data": { "pin": "Mã pin mà người dùng đã nhập", "phone": "số điện thoại của người dùng", "verified": true/fale, "remainingAttempts": số lần được phép nhập lại mã pin nếu nhập sai trước đó } }
pin: Mã pin mà người dùng đã nhập vào ứng dụng
phone: Số điện thoại nhận mã PIN
verified: true/false (cho biết mã PIN đã nhập vào là đúng hay sai, true: đúng, false: sai)
remainingAttempts: Số lần người dùng được phép nhập lại mã pin nếu đã nhập sai ở lần nhập trước
{ "status": "error", "code": "error code", "message": "error description" }