Apprenez comment ajouter l'authentification nfinic sur votre site web ayant un client JavaScript.
Introduction
nfinic est un système permettant d'authentifier les utilisateurs. Elle utilise l'authentification basée sur OAuth 2.0 et se centre sur le numéro de téléphone. Nous sommes convaincu que la plupart d'utilisateurs ont un numéro de téléphone. Cette plateforme offre plusieurs avantages, notamment:
- la securité de l'utilisateur
- la securitée du site web
- la rapidité lors de la création du compte
- l'assurance en la véracité des utilisateurs
Checklist d'installation
L'installation de nfinic sur un client JavaScript est très simple mais aussi très securis&eactue;.
Pour vous faciliter son installation, nous vous proposons un petit checklist ou liste à coché suivant ces éléments à avoir sur sa page HTML d'authentification:
- Ajouter son site sur https://dev.nf-nc.com
- Inclure le fichier CSS de nfinic
- Inclure le fichier JavaScript de nfinic
- Ajouter le bouton nfinic sur votre site web
- Initialiser l'authentification
- Obtenir les données de l'utilisateur
Ajouter votre site

L'ajout d'un site web sur nfinic est un processus très facile comme la complétion de n'importe quel formulaire
- Allez sur https://dev.nf-nc.com, oui, sur nf-nc.com qui est la plateforme d'authentification. Au préalable, il faut avoir un compte actif nfinic créé sur nf-nc.com, si vous ne l'avez pas, nous vous invitons déjà à le créer.
- Une fois vous êtes connecté à votre dashboard(tableau de bord) pour développeur, cliquez sur "+ Enregistrer site"
- Complétez alors l'identité de votre site web. Le nom du site web est par exemple "Google" tandisque le domaine est "https://google.com"
Note:Il est ici important de noter que le domaine est une information très importante pour l'authentification. HTTP est différent de HTTPS donc si votre site est http://example.com, il ne faut pas compléter https://exemple ou bien example.com. - Chosissez le logo de votre site web: les formats recommandés sont JPEG(.jpg, .jpeg) ou PNG(.png)
- Votre site web a besoin de certaines données sur le formulaire d'inscription. Choisissez les données dont vous avez besoin pour enregistrer les utilisateurs.
- Après avoir accepté les conditions d'utilisations, vous pouvez générer l'ID(identifiant) de votre application
- Cliquez sur "Fin pour finir ce processus"

Votre page de log in
Maintenant que notre site est bien enregistré, nous pouvons maintenant ajouter le bouton "Connexion avec nfinic" sur votre page web.
1. Le fichier CSS
Premièrement, veuillez ajouter le fichier CSS de nfinic qui est à cette URL https://cdn.jsdelivr.net/gh/nfinic/nfinic-js/nfinic.1.0.0.css
ou bien le fichier compressé qui est à cette adresse https://cdn.jsdelivr.net/gh/nfinic/nfinic-js/nfinic.1.0.0.min.css.
Note: Les versions des fichiers d'inclusion peuvent changer, vous pouvez chaque fois accéder au repository Github pour voir la dernière version dans la branche master. Pous pouvez aussi ajouter des "issues", des "corrections" et des "pull-requests", merci d'avance.
2. Le fichier JS
Après que le fichier CSS soit ajouté, nous pouvons maintenant ajouter le fichier JavaScript. Il est sur le lien suivant https://cdn.jsdelivr.net/gh/nfinic/nfinic-js/nfinic.1.0.0.js et
sa version compressée est sur l'URL https://cdn.jsdelivr.net/gh/nfinic/nfinic-js/nfinic.1.0.0.min.js. Nous preconisons que ce fichier soit ajouté avant le balise de fermeture </body> mais biensur
avant les fichiers Javascript qui l'appellent.
Note: Les versions des fichiers d'inclusion peuvent changer, vous pouvez chaque fois accéder au repository Github pour voir la dernière version dans la branche master. Pous pouvez aussi ajouter des "issues", des "corrections" et des "pull-requests", merci d'avance.
3. Le bouton "Connexion avec nfinic"
Le bout "Connexion avec nfinic" facile à ajouter comme l'ajout de n'importe quelle balise HTML.
Pour l'ajouter, veuillez ajouter une balise "button" avec l'id "btn-connexion-nfinic".
<button id="btn-connexion-nfinic">Connexion avec nfinic</button>
Note: Il faut vous rassurer que l'ID "btn-connexion-nfinic" est bien écrit pour ne pas avoir un problème à l'initialisation.
4. L'initialisation du log in
L'initialisation du log in est l'étape qui va permettre au bouton de réagir lorsque l'utilisateur clique.
Donc, dans votre script JavaScript, veuillez appeller la fonction d'initialisation nfinic avec l'ID de votre application qui a été créé lors de l'enregistrement
de votre site web sur nfinic. Pratiquement, vous pouvez le faire de cette façon:
initNfinicAuth("XXXXXXXXXXXXXXXXXXXXXXXXXXXX",parametres,callback);
Les paramètre à passer à l'initialisation sont un objet JSON contenant les éléments suivants:
| Paramètre | Type | Valeur par défaut | Rôle |
|---|---|---|---|
| font | boolean | false | Charger le font de nfinic sur "Connexion avec nfinic" |
| icon | boolean | false | Placer l'icône nfinic |
"callback" est une fonction qui retourne un objet JSON ayant un "etat" qui est soit "1" soit "-2". Si le resultat est 1 alors la requêtte s'est bien passée et on peut lire "resultat". Dans le cas contraire, il faut plutôt lire "cause" pour savoir la raison de l'échec.
Voici un exemple de l'initialisation:
initNfinicAuth("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",{icon:true,font:true},function(d){
if(d && d.etat){
if(d.etat == 1){
alert(JSON.stringify(d.resultat));
}else{
console.log("Echec de connexion, cause " + JSON.stringify(d.cause));
}
}
});
Note: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX est l'ID de votre site web sur dev.nf-nc.com
Exemple complet
Vous pouvez vous referer à cet exemple complet se trouvant sur notre Github, n'oubliez pas de nous donner une étoile ou de nous laisser des issues ou même de pull request si vous avez corrigé quelquechose.
Securité plus
Javascript étant executé du côté client(dans le navigateur), il y a possibilité qu'un utilisateur change certaines données importantes dont votre système a besoin.
nfinic offre une possibilité d'échapper à ces genres des piêges. C'est pour cela que nous avons ajouté la signature.
Les données provenant de nfinic possèdent une signature permettant de vous assurer que ces données sont authentiques.
Gardez la clé de signature de façon secrète
Ajout la signature à son back-end grâce au MD5
Nous avons opté pour la fonction md5 car elle est implementée dans quasiment tous les langages de programmation modernes. Créez une variable dans laquelle vous concatenez la clé de signature, les différentes données que vous avez obtenues, la signature et le token d'accès.
Ordre de la concanténation
Pour permettre de respecter l'ordre de différentes variables en créant la chaine qu'il faut entrer dans MD5, l'ordre se trouve dans l'object resultat.
Exemple d'un objet avec signature
{
"etat": 1
"resultat":{
"etat": 1,
"at": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyIwIjp7IiRvaWQiOiI1ZDgyOTU4MDhlNmU4Y2VlMGFiN2FjZDkifSwiMSI6eyIkb2lkIjoiNWU5MmY2ZGJhYjExYmFlY2FhM2IwZjgyIn0sIjIiOnsiJG9pZCI6IjVlOTJmYzM2YWIxMWJhZWNhMjQ1MzM0MyJ9LCIzIjpbIm5vbXMiLCJkYXRlZGVuYWlzc2FuY2UiLCJub3Rlc3VydXRpbGlzYXRldXIiLCJudW1lcm9kZXRlbGVwaG9uZSJdLCI0Ijp7Imh0dHBfaG9zdCI6ImxvY2FsaG9zdCIsImh0dHBfY29ubmVjdGlvbiI6ImtlZXAtYWxpdmUiLCJodHRwX29yaWdpbiI6Imh0dHA6Ly9sb2NhbGhvc3QiLCJodHRwX3VzZXJfYWdlbnQiOiJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xM182KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvODAuMC4zOTQ3LjAgU2FmYXJpLzUzNy4zNiJ9LCJleHAiOjE1ODY2OTQ3Mjl9.-cYLZ7kFC8eeua1hNzG99wnfslNGUkhx8kg23GEyOks"
"user": {
"noms": "Edmundo Johnaa",
"notesurutilisateur": "J'aime bien m'amuser quand il le faut",
"numerodetelephone": "+2431978905322",
"datedenaissance": "06/04/2019"
}
"signature": "fe9b19a0eeb8542830ba8b0a7c24c813"
"ordre": "noms, notesurutilisateur, numerodetelephone, datedenaissance, "
}
}
Légende
- etat : La connexion s'est bien passé
- resultat : Resultat reç du serveur, objet
- resultat.etat : L'utilisateur a été trouvé
- resultat.at : Access token ou token d'acc&eagrave;s.
- resultat.user : Objet représentant l'utilisateur
- resultat.signature : La signature pour vous rassurer de l'authenticité des données reçues
- resultat.ordre : Ordre dans lequel concatener les différentes valeurs.
Posez nous des questions sur Twitter @nfinic_