Authentification OTP par SMS
L’authentification OTP (One-Time Password) permet de vérifier l’identité d’un utilisateur via un code unique envoyé par SMS. Notre SDK Dart offre deux méthodes simples pour envoyer et vérifier les codes OTP.
Fonctionnalités
- Envoi de codes OTP personnalisables (longueur, mode)
- Vérification automatique des codes
- Support des modes numérique, alphabétique et alphanumérique
- Personnalisation du nom d’expéditeur et de l’application
Utilisation
Après avoir initialisé votre SDK, vous pouvez utiliser la propriété otp pour gérer l’authentification par SMS.
Envoi d’un code OTP
import 'package:mon_sms_pro/mon_sms_pro.dart';
Future<void> sendOtp() async {
try {
// Envoi du code OTP au numéro de téléphone
final res = await sms.otp.get(
phoneNumber: '0701020304',
length: 6,
mode: 'NUMERIC',
appName: 'MonApp',
);
if (res.success) {
final token = res.data?.token;
print('OTP envoyé, token: $token');
} else {
print('Erreur: ${res.error}');
}
} catch (error) {
print('Exception: $error');
}
}Vérification d’un code OTP
Future<void> verifyOtp(String token, String code) async {
try {
// Vérification du code OTP
final res = await sms.otp.verify(
token: token,
otp: code,
phoneNumber: '0701020304',
);
if (res.success) {
print('OTP vérifié avec succès !');
} else {
print('Code invalide: ${res.error}');
}
} catch (error) {
print('Exception: $error');
}
}La variable sms est l’instance initialisée de MonSMSPRO. Elle fournit deux méthodes pour l’authentification OTP : get pour l’envoi et verify pour la vérification.
Documentation de l’API
sms.otp.get
Envoie un code d’authentification (OTP) par SMS.
Future<ApiResponseModel<OTPModel?>> get({
required String phoneNumber,
String? senderId,
int? length,
String? mode,
String? appName,
String? companyId,
})| Nom | Description | Type | Facultatif | Valeur par défaut |
|---|---|---|---|---|
| phoneNumber | Numéro de téléphone du destinataire | String | Non | |
| senderId | Nom d’expéditeur affiché sur le SMS (ex: ‘MonShop’) | String? | Oui | null |
| length | Longueur du code (4-8 chiffres) | int? | Oui | 4 |
| mode | Mode du code | ”NUMERIC” | “ALPHABET” | “ALPHA_NUMERIC” | Oui | NUMERIC |
| appName | Nom de votre application dans le SMS | String? | Oui | null |
| companyId | Identifiant de l’entreprise pour débiter les crédits au niveau entreprise | String? | Oui | Auto-injecté depuis la config |
Si vous avez configuré un companyId lors de l’initialisation du SDK, celui-ci est automatiquement inclus dans chaque appel à otp.get(). Les crédits seront débités du solde de l’entreprise au lieu du solde utilisateur. Vous pouvez également passer un companyId directement dans les paramètres pour un remplacement ponctuel.
sms.otp.verify
Vérifie un code d’authentification (OTP) envoyé par SMS.
Future<ApiResponseModel<OTPModel?>> verify({
required String token,
required String otp,
String? phoneNumber,
})| Nom | Description | Type | Facultatif | Valeur par défaut |
|---|---|---|---|---|
| token | Jeton retourné par get() | String | Non | |
| otp | Code de vérification saisi par l’utilisateur | String | Non | |
| phoneNumber | Numéro de téléphone du destinataire | String? | Oui | null |
Bonnes pratiques
- Sécurité : Utilisez des codes d’au moins 6 caractères
- Expiration : Les codes OTP expirent après 5 minutes
- Tentatives : Limitez le nombre de tentatives de vérification
- Messages : Personnalisez le
appNamepour une meilleure expérience - Gestion des erreurs : Vérifiez toujours
response.successavant d’accéder aux données