Documentation
- Introduction
- Premiers pas
- Implémentation
- Questions fréquentes
- Chez moi cela ne fonctionne pas correctement, que faire ?
Introduction
JustAuthMe est un fournisseur d'identité en ligne fonctionnant sans le besoin d'aucun mot de passe. Nous permettons à tout un chacun de se connecter sans effort à n'importe quel site web utilisant notre solution. Nous fournissons une application mobile à nos utilisateurs et une API à nos clients qui souhaitent intégrer la solution à leur site web.
Véritable alternative respectueuse de la vie privée aux différents systèmes de connexion des réseaux sociaux, JustAuthMe innove en supprimant entièrement le concept du mot de passe. Nos utilisateurs sont authentifiés par les systèmes biométriques de leur smartphones et nos clients s'assurent d'acquérir des utilisateurs humains avec des informations authentiques vérifiées et via un processus simplifié à l'extrême. Une vidéo de présentation est disponible sur Youtube.
Premiers pas
Installation
JustAuthMe ne nécessite aucune installation particulière car un bouton vers un lien spécifique et un appel à notre API suffisent à faire fonctionner la solution. Nous avons néanmoins mis en place des SDK pour certains des langages les plus utilisés, que vous trouverez ci-dessous:
- SDK PHP: github.com/JustAuthMe/PHP-SDK
Créer une application
Pour fonctionner sur votre site, JustAuthMe a besoin d'avoir connaissance de votre site. Pour cela il va vous falloir créer une application sur notre console pour développeurs, disponible ici: https://developers.justauth.me. Pour créer une application JustAuthMe pour votre site, vous aurez besoin des éléments suivants:
- Le nom de votre site
- Un logo au format 512x512 px
- À noter que dans l'application, le logo sera affiché sous forme de disque, les coins seront donc rognés
- Le nom de domaine auquel répond votre site
- Une URL de callback où seront envoyés les token d'accès aux informations des utilisateurs
- Cette URL doit obligatoirement être au format HTTPS et se trouver sur le même nom de domaine que votre site
Vous serez ensuite amené à choisir quelles informations vous désirez obtenir d'un utilisateur. Actuellement, JustAuthMe propose les informations suivantes à ses clients:
- Adresse E-Mail
- Nom
- Prénom
- Date de naissance (au format jj/mm/aaaa)
- Photo de profil (encodée en base64)
Pour chacune des informations choisies, vous pourrez rendre leur usage obligatoire ou facultatif. Chaque utilisateur désireux de se connecter à votre site via JustAuthMe sera informé des informations dont vous avez besoin, et pourra choisir de ne pas partager celles que vous avez rendues facultatives.
Une fois le processus complété, deux informations importantes vous seront communiquées:
- Une clé d'API, secrète, à garder en lieu sûr
- Une URL de connexion, publique, à laquelle vos futurs utilisateurs accèderont pour se connecter à votre site
Implémentation
Bouton de connexion
Par défaut
Une fois en possession de votre secret d'API et de votre URL de connexion, vous pouvez ajouter sur vos formulaires d'inscription et de connexion un bouton amenant l'utilisateur vers votre URL de connexion. Nous avons déjà fabriqué un bouton:
Vous pouvez le télécharger ou directement l'intégrer depuis notre plateforme: https://static.justauth.me/medias/button.png
Alternative
Si vous ne souhaitez pas utiliser le bouton de connexion par défaut car celui-ci s'intègre mal dans votre charte graphique, vous pouvez élaborer votre propre bouton en suivant strictement les règles suivantes:
- Le texte du bouton doit être exactement "Se connecter Avec JustAuthMe"
- La couleur du texte du bouton doit être blanche (
#FFFFFF
) - La couleur d'arrière-plan du bouton doit être exactement
#3498DB
Pensez à l'accessibilité
N'oubliez pas d'inclure un attribut alt="Se connecter avec JustAuthMe"
à la balise img
contenant le bouton.
Exemple de code
<a href="https://core.justauth.me/auth?app_id=...&redirect_url=...">
<img src="https://static.justauth.me/medias/button.png" alt="Se connectecter avec JustAuthMe" />
</a>
Acquisition des données
Introduction
Une fois la connexion confirmée par l'application, la page de connexion redirige l'utilisateur vers votre URL de callback, avec un paramètre GET access_token
qui doit tout de suite être utilisé pour récupérer les informations de l'utilisateur courant et le connecter. Chaque access_token
n'est valable que 60 secondes.
Appel API
Lors de la réception du access_token
sur votre URL de callback, vous devez tout de suite faire un appel à https://core.justauth.me/api/data?secret=[votre secret]&access_token=[le access_token reçu]
.
Réponse API lors de l'inscription
Lors de la première utilisation de JustAuthMe par un utilisateur sur votre site, cet appel vous renverra une réponse au format JSON contenant les informations suivantes:
{
"status": "success",
"jam_id": "xxxxxxxxxx",
"data1": "value1",
"data2": "value2",
"...": "..."
}
status
: Le status de la réponse (s'accompagne d'un statut HTTP 200 OK)- Si le
status
vautsuccess
, l'opération peut continuer - Si le
status
vauterror
, l'opération a échoué
- Si le
jam_id
: Il s'agit de l'identifiant unique de l'utilisateur, il doit être conservé et utilisé comme point de repère lors des prochaines connexion- données: Le reste de la réponse correspond aux données que vous avez choisi de demander à vos utilisateurs lors de la création de votre application JustAuthMe sur notre console pour développeurs.
À noter que si vous avez opter pour des données facultatives, vous devez vérifier leur présence dans la réponse de l'API, l'utilisateur pourrait avoir refusé de partager une ou plusieurs données avec vous, cela ne doit pas faire échouer l'inscription
Que faire avec la réponse ?
Les données reçues doivent être conservées de votre côté et traitées comme une inscription à votre site, un nouvel utilisateur doit être créé dans votre base de données et le jam_id
reçu doit y être associé.
Lors des connexions suivantes
Les prochaines fois que le même utilisateur se reconnectera à votre site en utilisant JustAuthMe, vous recevrez également un access_token
et vous devrez également faire l'appel api à /data
. En revanche, l'API ne retournera que le jam_id
et non pas la totalité des informations de l'utilisateur. C'est pourquoi il est important de traiter ces informations dès la première connexion et de créer un profil utilisateur associé. Le jam_id
reçu lors de toutes les prochaines connexion vous servira à trouver lequel de vos utilisateurs vous devez connecter.
Résumé en image
Pour bien comprendre le fonctionnement de notre solution, voici le diagramme de séquence du parcours d'authentification:
Faites attention à l'absence de mot de passe
Comme notre solution est exempte de mot de passe, vous aurez probablement dans votre base de données un champ "mot de passe" laissé à vide pour les utilisateurs acquis via JustAuthMe. Il ne faut PAS que ce champ laissé vide permette un accès à ces comptes via votre formulaire de connexion sans renseigner de mot de passe. De la même manière, ne définissez pas un mot de passe par défaut pour ces comptes, il s'agit là d'une faille de sécurité majeure.
Exemples
Des exemples d'implémentation dans différents langages sont disponibles dans les SDK de ces derniers, listés plus haut.
Questions fréquentes
Le token d'accès aux données est-il réutilisable ?
Non. Le access_token
reçu lors de chaque connexion est tout le temps différent et n'est valable que durant 60 secondes. Il ne sert qu'à valider l'appel API à https://core.justauth.me/api/data
afin de récupérer les informations concernant l'utilisateur courant.
Quand dois-je connecter l'utilisateur ?
Dès que vous recevez le access_token
, vous devez faire l'appel API à /data
puis connecter l'utilisateur, le tout dans le même script / la même page.
Comment faire si j'ai besoin que l'utilisateur renseigne un pseudonyme ?
Comme nous ne pouvons pas prévoir à l'avance quel pseudonyme sera ou non disponible sur tel ou tel site, il vous appartient de demander à l'utilisateur de choisir un pseudonyme après sa première connexion via JustAuthMe.
Comment faire si l'utilisateur possède déjà un compte sur mon site ?
Pour répondre à cette problématique, vous devez lier le compte de cet utilisateur à son jam_id
. Pour cela, il vous suffit de vérifier que l'adresse e-mail reçue lors de la première connexion avec avec JustAuthMe est présente dans votre base d'utilisateurs existants. Si tel est le cas, liez simplement le jam_id
reçu à cet utilisateur. Pas d'inquiétude, les adresses e-mail que vous recevez ont été vérifiées en amont par JustAuthMe. Cela veut dire que si une adresse e-mail vous ai transmise, c'est qu'elle appartient bien à la personne qui souhaite se connecter à votre site. Vous pouvez donc lier cette personne à son compte existant.
Comment faire si je veux restreindre l'accès à mon site ?
Comme pour la problématique ci-dessus, c'est au niveau de l'adresse e-mail que cela se passe. Commencez par établir une liste des adresses e-mail autorisées à se connecter à votre site (peut-être tout simplement votre base actuelle d'utilisateurs). Une fois ceci fait, vous n'aurez plus qu'à vérifier que l'adresse e-mail reçue lors de la première connexion de chaque utilisateur via JustAuthMe correspond à une des adresses de la liste préalablement établie, puis à associer le jam_id
reçu à cette adresse pour les prochaines connexions. Vous pouvez également imaginer un système d'invitations, là aussi basé sur l'adresse e-mail. Pas d'inquiétude, les adresses e-mail que vous recevez ont été vérifiées en amont par JustAuthMe. Cela veut dire que si une adresse e-mail vous ai transmise, c'est qu'elle appartient bien à la personne qui souhaite se connecter à votre site.
Comment faire si je souhaite me passer de JustAuthMe à l'avenir ?
Si vous comptez malheureusement nous quitter, les utilisateurs acquis grâce à JustAuthMe ne sont pas perdus ! Il leur suffira de passer par votre fonction "Mot de passe oublié" afin de leur permettre de définir un mot de passe propre à votre site et ainsi d'accéder à leur compte sans passer par notre application.
Chez moi cela ne fonctionne pas correctement, que faire ?
Si vous rencontrez des difficultés à implémenter JustAuthMe, n'hésitez pas à nous contacter à developers@justauth.me, nous nous ferons un plaisir de vous venir en aide !