Matrix_Get-Token_Toolbox/get-token.sh
2026-06-04 16:25:55 +02:00

52 lines
1.6 KiB
Bash
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# --- EINGABE: SERVER-DATEN ---
read -p "Matrix-Domain [http://matrix-client.matrix.org]: " DOMAIN
DOMAIN=${DOMAIN:-http://matrix-client.matrix.org}
# Wenn du unterwegs bist, drücke hier einfach direkt Enter (leer lassen)
read -p "Lokale Server-IP (Leer lassen, wenn du unterwegs bist!): " SERVER_IP
# --- EINGABE: BENUTZER-DATEN ---
read -p "Matrix-Benutzername: " USERNAME
read -s -p "Matrix-Passwort: " PASSWORD
echo ""
echo "Verbinde mit Matrix-Server https://$DOMAIN ..."
# --- RESOLVE LOGIK PRÜFEN ---
# Wenn eine IP eingegeben wurde, nutzen wir --resolve. Wenn nicht, fragen wir direkt das Internet ab.
if [ -n "$SERVER_IP" ]; then
# Wichtig: Nur die reine IP eintragen (z.B. 192.168.10.118), ohne Port (:6167)!
RESOLVE_PARAM="--resolve ${DOMAIN}:443:${SERVER_IP}"
else
RESOLVE_PARAM=""
fi
# --- API-ABRUF ---
RESPONSE=$(curl -k -s -X POST \
$RESOLVE_PARAM \
"https://${DOMAIN}/_matrix/client/v3/login" \
-H "Content-Type: application/json" \
-d '{
"type": "m.login.password",
"identifier": { "type": "m.id.user", "user": "'"$USERNAME"'" },
"password": "'"$PASSWORD"'"
}')
# --- TOKEN EXTRAKTION ---
TOKEN=$(echo "$RESPONSE" | grep -o '"access_token":"[^"]*' | cut -d'"' -f4)
if [ -n "$TOKEN" ]; then
echo "✅ Login für @${USERNAME} auf ${DOMAIN} erfolgreich!"
echo "Dein Token lautet:"
echo "$TOKEN"
else
echo "❌ Fehler beim Login für @${USERNAME}!"
echo "Antwort vom Server war:"
if [ -z "$RESPONSE" ]; then
echo "[Keine Antwort vom Server Internetverbindung, IP oder Portfreigabe prüfen]"
else
echo "$RESPONSE"
fi
fi