Exemples / Authentification en ligne de commande

Les exemples suivants permettent d'obtenir un jeton d'accès en utilisant la méthode Client Credentials décrite dans Authentification.

Stockage des identifiants

Afin d'éviter d'exposer vos identifiants dans votre historique de commandes, vous pouvez les stocker dans des variables :

echo "Please enter your client ID:" && read CLIENT_ID && \
echo "Please enter your client secret:" && read CLIENT_SECRET

Obtention du jeton

Une fois les identifiants enregistrés, le jeton d'accés obtenu est lui aussi assigné à une variable.
Cette variable peut ensuite être facilement utilisée dans les divers exemples proposés dans cette documentation.

L'extraction JSON nécessite la commande jq.

cURL :

ACCESS_TOKEN=$( \
  curl -X POST \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
      "grant_type": "client_credentials",
      "client_id": "'$CLIENT_ID'",
      "client_secret": "'$CLIENT_SECRET'"
    }' https://api.solutions-territoire.fr/oauth/token | jq -r .access_token \
) && echo "Acces Token:$ACCESS_TOKEN"

HTTPie :

ACCESS_TOKEN=$( \
  http -j POST https://api.solutions-territoire.fr/oauth/token \
    Accept:"application/json" \
    grant_type='client_credentials' \
    client_id=$CLIENT_ID \
    client_secret=$CLIENT_SECRET | jq -r .access_token \
) && echo "Acces Token:$ACCESS_TOKEN"

Exemple d'utilisation de la variable obtenue ci-dessus sur un point d'API :

cURL :

curl -X GET \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  https://api.solutions-territoire.fr/datasets

HTTPie :

http -v GET https://api.solutions-territoire.fr/datasets \
  Accept:"application/json" \
  Authorization:"Bearer $ACCESS_TOKEN"