Aperçu
OneSignal offre une fonctionnalité de sécurité améliorée appelée vérification d’identité pour aider à prévenir l’usurpation d’identité des utilisateurs. Cette fonctionnalité utilise des jetons Web JSON – ou JWT, générés de manière sécurisée sur votre serveur. Pour vérifier les informations d’abonnement, ces jetons sont transmis à votre application et à l’API de OneSignal. Activez la vérification d’identité pour sécuriser :- Connecter les utilisateurs
- Ajouter des abonnements email
- Ajouter des abonnements SMS
- Modifier les identités des utilisateurs
Prérequis
- Une application OneSignal existante avec une plateforme push configurée.
- Une application mobile intégrée avec l’un des SDK pris en charge :
Configuration
Générer de nouvelles clés

Configuration de la vérification d'identité

Création d'une nouvelle paire de clés

Paire de clés de vérification d'identité
Générer un JWT de vérification sur votre backend
Charge utile JWT
Le JWT peut avoir les propriétés suivantes :Signature du JWT
Signez le JWT en utilisant l’algorithme ES256. Assurez-vous que votre backend est configuré pour utiliser cette méthode de signature afin d’éviter les problèmes de vérification lors de l’envoi du JWT à OneSignal. Nous recommandons une bibliothèque JWT pour ce faire.Exemple utilisant jsonwebtoken :Vérifier votre JWT
Avant d’intégrer avec le SDK, vérifiez que votre JWT est correctement généré en démarrant votre serveur et en appelant l’endpoint :isscorrespond à votre ID d’application OneSignal dans Paramètres > Clés et IDidentity.external_idest présent et correspond à la valeur que vous passerez àOneSignal.login()expest un horodatage futur — un jeton expiré sera rejeté par OneSignal
Inclusion des abonnements
Idéalement, les détails d’abonnement, tels que l’email ou le numéro de téléphone, sont inclus dans la charge utile JWT lors de la connexion d’un utilisateur. Si ces détails ne sont pas disponibles au départ, votre serveur de vérification doit fournir un endpoint pour générer des jetons dynamiquement à mesure que les informations d’abonnement deviennent disponibles.Exemple : Génération de JWT pour ajouter des abonnementsTransmettre le JWT à la méthode `login`
login avec celui-ci. Ce jeton garantit que l’identité de l’utilisateur est vérifiée avant que des modifications, telles que l’ajout d’un abonnement email ou SMS, puissent être effectuées.Exemple de connexion :Gérer les événements du cycle de vie JWT
Activer la vérification d'identité par jeton dans le tableau de bord

Activation de la vérification d'identité par jeton
login en utilisant un JWT généré par votre serveur de jetons de vérification d’identité.Ajout d’abonnements
Vous n’avez pas besoin de prendre de mesures supplémentaires pour ajouter des abonnements depuis votre application mobile ; l’appel de la méthode login le gère automatiquement pour vous.- Ajouter un email
- Ajouter un numéro de téléphone
API REST
Lorsque la vérification d’identité par jeton est activée, toutes les requêtes vers les API suivantes doivent inclure un JWT généré par le serveur dans les en-têtes en tant que jeton porteur, par exemple,Authorization: Bearer <JWT>.
- Créer un utilisateur
- Voir un utilisateur
- Mettre à jour un utilisateur
- Supprimer un utilisateur
- Voir l’identité de l’utilisateur
- Créer un alias
- Supprimer un alias
- Créer un abonnement
- Mettre à jour un abonnement
FAQ
La vérification d’identité est-elle obligatoire ?
Non, mais elle est fortement recommandée. Sans elle, tout client connaissant l’ID d’utilisateur externe d’un utilisateur peut usurper son identité et modifier ses abonnements ou ses données.Que se passe-t-il si le JWT expire pendant une session ?
Le SDK déclenche un événement d’invalidation de JWT. ImplémentezaddUserJwtInvalidatedListener (voir Gérer les événements du cycle de vie JWT) pour récupérer un jeton mis à jour depuis votre backend et le transmettre à updateUserJwt.
Quels SDK prennent en charge la vérification d’identité ?
Actuellement, le SDK Android natif (5.2.0+) et le SDK iOS (5.3.0+). La prise en charge des SDK wrapper (Flutter, React Native, Unity, etc.) arrive bientôt.Ai-je besoin de la vérification d’identité pour l’API REST ?
Lorsque la vérification d’identité par jeton est activée, toutes les requêtes vers les API prises en charge doivent inclure un JWT généré par le serveur en tant que jeton porteur dans l’en-têteAuthorization. Le JWT est généré de la même manière que pour l’utilisation du SDK.