commit fc2a7b2ce05736cee9dc79dd8d734d5ba60fe0cc Author: christian Date: Thu Jun 4 16:25:55 2026 +0200 Initialer Commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e4f1e76 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.log +.env +node_modules/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..4df0e4e --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Matrix_Get-Token_Toolbox diff --git a/get-token.sh b/get-token.sh new file mode 100755 index 0000000..9f03802 --- /dev/null +++ b/get-token.sh @@ -0,0 +1,52 @@ +#!/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