Перейти до основного вмісту

TOKEN

Авторизація до M2M Platform відбувається через токени. Нижче наведено bash-скрит отримання токена с записом в txt-файл для подальшого використання.

Зверніть увагу

Час "життя" основного токена - 120 хвилин. Час життя refresh токена - 30 діб.

get_token.sh

#!/bin/bash

URL="https://my.m2m.eu"
API_URL="api/login"
EMAIL="demo@m2m.eu"
PASSWORD="demo@m2m.eu"
TOKEN_FILE="token.txt"

echo "Отримання auth token..."
TOKEN=$(curl -s -X POST "$URL/$API_URL" \
-H "Content-Type: application/json" \
-d "{\"email\": \"${EMAIL}\", \"password\": \"${PASSWORD}\"}" \
| jq -r '.token')

if [[ "$TOKEN" == "null" || -z "$TOKEN" ]]; then
echo "Помилка отримання токена!"
exit 1
fi

echo "Токен отримано: $TOKEN"
echo "$TOKEN" > $TOKEN_FILE

Скопіюйте скрипт в файл get_token.sh, надайте права на виконання chmod +x get_token.sh. Виконайте скрипт командою ./get_token.sh.

Для виконання скрипта необхідно:

  • серидовище Linux Debian
  • встановлені додаткові компоненти: apt install curl jq -y

get_update_token.sh

Токен має термін дії. Тому перед початком виконання скриптів треба перевіряти його валідність. Нижче скрипт, який:

  • перевіряє наявність файлу token.txt в папці, в який знаходиться скрипт
  • якщо файл token.txt відсутній - генерує токен та зписує його в файл token.txt
  • якщо файл token.txt наявний - зчитує з нього токен та перевіряє його валідність
  • якщо токен НЕ валідний - генерує новий та записує його в файл
  • якщо токен валідний - нічого не робить
#!/bin/bash

URL="https://my.m2m.eu"
LOGIN_API="api/login"
CHECK_API="api/account/me"

EMAIL="demo@m2m.eu"
PASSWORD="demo@m2m.eu"
TOKEN_FILE="token.txt"

get_new_token() {
echo "Отримання нового токена..."

TOKEN=$(curl -s -X POST "$URL/$LOGIN_API" \
-H "Content-Type: application/json" \
-d "{\"email\": \"${EMAIL}\", \"password\": \"${PASSWORD}\"}" \
| jq -r '.token')

if [[ -z "$TOKEN" || "$TOKEN" == "null" ]]; then
echo "❌ Помилка отримання токена!"
exit 1
fi

echo "$TOKEN" > "$TOKEN_FILE"
echo "✅ Новий токен збережено в $TOKEN_FILE"
}

validate_token() {
local TOKEN="$1"

STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $TOKEN" \
"$URL/$CHECK_API")

# 200 = валідний токен
if [[ "$STATUS" == "200" ]]; then
return 0
fi

return 1
}


if [[ ! -f "$TOKEN_FILE" ]]; then
echo "Файл $TOKEN_FILE не знайдено — створюємо новий токен."
get_new_token
exit 0
fi

# Зчитуємо токен
TOKEN=$(<"$TOKEN_FILE")

if [[ -z "$TOKEN" ]]; then
echo "Порожній токен у файлі — отримуємо новий."
get_new_token
exit 0
fi

echo "Перевірка валідності токена..."

if validate_token "$TOKEN"; then
echo "✅ Токен валідний — нічого не робимо."
else
echo "⚠️ Токен НЕвалідний — оновлюємо..."
get_new_token
fi

Скопіюйте скрипт в файл get_update_token.sh, надайте права на виконання chmod +x get_update_token.sh. Виконайте скрипт командою ./get_update_token.sh.

Скрипт get_update_token.sh рекомендується додавати в усі скрипти, в яких задіяний токен.

# Перевіряємо валідність токена та оновлюємо за потреби. Скрипт get_update_token.sh має бути в тій самій папці що і виконуваний скрипт.
./get_update_token.sh