Spark-Could-API-Auth

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Authentification

Ce n'est pas parce que vous avez connecté votre Spark Core sur Internet que n'importe qui peut y accéder. Les permissions permettant de contrôler et communiquer avec le Spark Core sont gérés avec OAuth2 (Wikipedia, Français).

# Vous tapez ceci dans votre terminal
curl https://api.spark.io/v1/devices/0123456789abcdef01234567/brew \
     -d access_token=9876987698769876987698769876987698769876
# Réponse: Statut 200 OK, ce qui signifie que votre
# Core dit "Oui, monsieur!" 

# Si Sneaky Pete essaye la même chose dans son terminal
# Notez que Sneaky utilise son propre access_token (celui mentionné 
# dans son environnement Spark Build)
curl https://api.spark.io/v1/devices/0123456789abcdef01234567/brew \
     -d access_token=1234123412341234123412341234123412341234
# Réponse: Statut 403 Forbidden, signifiant que votre 
# Core répond "Tu n'est pas mon maître."

# Morale de cet exemple: *** protégez votre access_token ***

Spark-Build-Icon.jpg

Lorsque vous connectez votre Spark Core sur le Cloud pour la première fois, is sera associé à votre compte Spark. Seulement après cette opération vous aurez la permission de contrôler Spark Core en utilisant votre access token.


Si vous voulez transférer la propriété de votre Core à un autre utilisateur, la façon la plus simple est encore de vous connecter sur le site de Spark build, de cliquer sur l'icon 'Cores' en bas à gauche puis de cliquer sur la petite flèche à côté du Core à transférer.

Vous pourrez ainsi cliquer sur le bouton "Remove Core" (retirer le Core) afin qu'il ne soit plus associé à votre compte Spark.

Cette opération réalisée, vous pouvez alors donner votre Core et la personne qui le recevra pourra utiliser le processus de déclaration (claiming) normalement, comme s'il s'agissait d'un Core tout neuf.


Dans le futur, vous serez capable d'offrir un accès à votre Core à d'autre comptes et à des développeurs d'application; Cependant, cette fonctionnalité n'est pas encore disponible.

Comment envoyer votre access_token

Il y a trois façons différentes d'envoyer un access token (jeton d'accès) dans une requête.

  • Dans l'entête d'autorisation HTTP (HTTP Authorization header). Fonctionne toujours.
  • Inlus dans l'URL de la requête (dans la query string). Fonctionne uniquement avec les requêtes GET.
  • Dans le corps de la requête. Fonctionne uniquement avec POST et PUT lorsque l'URL est encodée dans le corps.

Dans ces documents, vous allez voir des exemples d'appel utilisant le programme CURL en ligne de commande. CURL est disponible sur toutes les plateformes.

Example commands will always start with curl.

curl -H "Authorization: Bearer 38bb7b318cc6898c80317decb34525844bc9db55"
  https://...

To send a custom header using curl, use you the -H flag. The access token is called a "Bearer" token and goes in the standard HTTP Authorization header.

curl https://api.spark.io/v1/devices\?access_token=38bb7b318cc6898c80317decb34525844bc9db55

The query string is the part of the URL after a ? question mark. To send the access token in the query string just add access_token=38bb.... Because your terminal thinks the question mark is special, we escape it with a backslash.

curl -d access_token=38bb7b318cc6898c80317decb34525844bc9db55
  https://...

The request body is how form contents are submitted on the web. Using curl, each parameter you send, including the access token is preceded by a -d flag. By default, if you add a -d flag, curl assumes that the request is a POST. If you need a different request type, you have to specifically say so with the -X flag, for example -X PUT.

Générer un nouvel access_token

When creating a new access token, you need to specify several additional pieces of info.

POST /oauth/token

You must give a valid client ID and password in HTTP Basic Auth. Any client ID will work right now, so we suggest spark:spark (utilisateur:mot_de_passe). In the POST body, you need three parameters:

  • grant_type=password
  • username=YOUR_EMAIL@ADDRE.SS
  • password=YOUR_PASSWORD
# Using curl in your terminal
curl https://api.spark.io/oauth/token -u spark:spark \
     -d grant_type=password -d username=joe@example.com -d password=SuperSecret

# A typical JSON response will look like this
{
    "access_token": "254406f79c1999af65a7df4388971354f85cfee9",
    "token_type": "bearer",
    "expires_in": 7776000
}

For now, Spark Build will list the single most recently created token.

Lister tous vos tokens

You can list all your access tokens by passing your email address and password in an HTTP Basic Auth header to /v1/access_tokens.

 GET /v1/access_tokens
# Using curl in your terminal
curl https://api.spark.io/v1/access_tokens -u joe@example.com:SuperSecret

# Example JSON response
[
    {
        "token": "b5b901e8760164e134199bc2c3dd1d228acf2d98",
        "expires_at": "2014-04-27T02:20:36.177Z",
        "client": "spark"
    },
    {
        "token": "ba54b6bb71a43b7612bdc7c972914604a078892b",
        "expires_at": "2014-04-27T06:31:08.991Z",
        "client": "spark"
    }
]

Effacer un access_token

If you have a bunch of unused tokens and want to clean up, you can delete tokens.

DELETE /v1/access_tokens/:token

Just as for listing them, send your username and password in an HTTP Basic Auth header.

# Using curl in your terminal
curl https://api.spark.io/v1/access_tokens/b5b901e8760164e134199bc2c3dd1d228acf2d98 \
     -u joe@example.com:SuperSecret -X DELETE

# Example JSON response
{
    "ok": true
}

Source: Cloud CODE (API) créé par Spark.IO.

Traduction réalisée par Meurisse D pour MCHobby.be - Translated by Meurisse D. for MCHobby.be

Traduit avec l'autorisation de Spark.IO - Translated with the permission from Spark.IO - Spark.IO

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.