Authentification

L'authentification dans Sinao est possible de deux manière :

  • via un token Bearer, obtenu grâce au login et mot de passe d'un compte utilisateur ;
  • ou grâce à une clé API.

Clé API

La clé API doit être créée sur l'interface de Sinao depuis l'utilisateur administrateur de l'entreprise. Elle n'a pas de limite de validité.

Create API Key

Une fois cette clé récupérée, il suffit de l'ajouter en header pour authentifier la requête : Api-Key: <key>

var requestOptions = {
    method: 'GET',
    headers: {
        'Api-Key': 'xxx' // Remplacez 'xxx' par la valeur réelle de votre clé API
    },
    redirect: 'follow'
};

fetch("https://api.sinao.app/v1/me", requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));

Login via compte utilisateur

La validité du token Bearer est de 24h.
La première étape consiste à envoyer une requête POST sur l'endpoint /login avec l'email et le mot de passe du compte afin de récupérer ce token de connexion. Il sera possible de rafraichir le token si celui-ci expire via l'endpoint /refresh pendant 14 jours.

Une fois ce token récupéré, il doit être transmis dans le header Authorization: Bearer <token> dans toutes les requêtes identifiées.

var formdata = new FormData();

formdata.append("email", "[email protected]");
formdata.append("password", "secret");

var requestOptions = {
		method: 'POST',
		body: formdata,
		redirect: 'follow'
};

fetch("https://api.sinao.app/v1/login", rquestOptions)
		.then(response => response.text())
		.then(result => console.log(result))
		.catch(error => console.log('error', error));

Refresh token

var myHeaders = new Headers();

myHeaders.append("Authorization", "Bearer <token>");

var requestOptions = {
		method: 'GET',
		headers: myHeaders,
		redirect: 'follow'
};

fetch("https://api.sinao.app/v1/refresh", requestOptions)
		.then(response => response.text())
		.then(result => console.log(result))
		.catch(error => console.log('error', error));