NEWS
Script "AlexaLogOn": Alexa LogOn mit User/Pass + 2FA Code
-
hallo,
habe plötzlich (ab heute mittag) nur noch fehler im ALEXA LOGIN script - der javascript adapter startet die ganze zeit neu. hat das problem noch jemand - alexa kann nicht mehr gesteuert werden - ich habe nichts geändert an meinen system `
Dieses Problem tritt normalerweise auf, wenn der Cookie-Datenpunkt leer ist.
Sprich, Du musst das Login-Script mit User/Pass laufen lassen, um ein neues Cookie zu berechnen.
-
Danke Stefan,
das war das Problem. Das Login Script nochmal laufen lassen und alles funktioniert wieder.
-
hallo stefan,
sorry mein fehler - ich hatte diesen fehler schon ein paar mal und habe dann das logon script laufen lassen - dann ging es wieder. doch diesmal funktioniert der trick nicht mehr - ich bekomme fehler im login script dadurch stürzt das alexa script und der javascript adapter dauern ab. das LOGON script bringt dauernd fehler - kein login!
leider weiß ich nicht was ich für fehler posten muss - hoffe das bild reicht aus
4447_alexa-script2.png -
gute neuigkeiten (für mich).
habe mal alle echos abgesteckt und neu eingeschaltet - brachte nix
ABER danach habe ich mal mein handy genommen und mich dort auf der alexa.amazon.de neu angemeldet (nicht in der app sondern im browser) - jetzt funktioniert das alexa login script wieder - und alexa ist wieder steuerbar
keine ahnung warum - vielleicht kann das jemand erklären - neues einlogen am pc-browser brachte nichts.
-
gute neuigkeiten (für mich).
habe mal alle echos abgesteckt und neu eingeschaltet - brachte nix
ABER danach habe ich mal mein handy genommen und mich dort auf der alexa.amazon.de neu angemeldet (nicht in der app sondern im browser) - jetzt funktioniert das alexa login script wieder - und alexa ist wieder steuerbar
keine ahnung warum - vielleicht kann das jemand erklären - neues einlogen am pc-browser brachte nichts. `
Das ist eine interessante Beobachtung!
Bei der Fehlermeldung aus dem Screenshot ist vermutlich folgendes passiert: manchmal schaltet Amazon eine Seite im Logon-Prozess dazwischen, auf der ein Code von einem Bild abgelesen werden muss. In diesem Fall gibt es noch keine richtige Fehlermeldung im Script. Nach einiger Zeit geht der Login dann wieder, weil Amazon die Seite dann nicht mehr anzeigt.
Wenn also ein Einloggen am Handy im Browser dies zurücksetzen könnte, wäre das natürlich super. Wenn das noch jemand beobachtet, bitte hier melden.
-
war wahrscheinlich/vielleicht zufall - ich dachte mir nur einmal ein anderes gerät zu benutzen als meinen standard pc würde etwas ändern - hat es dann auch.
weiteree frage: kann man dein alexa script nicht so ändern (bzw das du es änderst :-)), dass es nicht mehr abstürzt wenn der cookie falsch ist - es hat meine ganze iobroker einrichtung lahmgelegt.
falls nur ich das problem habe kannst mir ja vielleicht einen tipp geben wie ich das machen kann - ich würde gerne alexa mit tuneIn radio zum wecken benutzen - da ich aber ca. alle 2 wochen das login script-problem habe kann ich mich darauf nicht verlassen. muss ich evtl. eine sicherheitsabfrage von javascript.0.productive.alexalogon.cookievalid machen?
-
war wahrscheinlich/vielleicht zufall - ich dachte mir nur einmal ein anderes gerät zu benutzen als meinen standard pc würde etwas ändern - hat es dann auch. `
werde ich mal ausprobieren, wenns bei mir wieder soweit istweiteree frage: kann man dein alexa script nicht so ändern (bzw das du es änderst :-)), dass es nicht mehr abstürzt wenn der cookie falsch ist - es hat meine ganze iobroker einrichtung lahmgelegt.
falls nur ich das problem habe kannst mir ja vielleicht einen tipp geben wie ich das machen kann - ich würde gerne alexa mit tuneIn radio zum wecken benutzen - da ich aber ca. alle 2 wochen das login script-problem habe kann ich mich darauf nicht verlassen. muss ich evtl. eine sicherheitsabfrage von javascript.0.productive.alexalogon.cookievalid machen? `
Das Problem mit dem Absturz ist, deinem Screenshot folgend, nicht im LogOn-Script, sondern in dem Script, welches das Cookie liest. Also hier das tuneln radio script.
Das müsste also derjenige Entwickler sich anschauen, wie das abgesichert werden kann. Sprich, wenn das Cookie leer ist, nicht die ganze JS-Instanz zu crashen.
Ich muss da glaube ich auch noch mal in meinem DeleteAlexaActivity Script schauen, weil das ist glaube ich auch nicht dagegen abgesichert…
-
sorry - stimmt ja- der absturz kam durch das andere skript.
ich hätte da noch eine andere frage: macht es sinn einen 2ten js-adapter zu installieren und darin die beiden alexa scripts laufen zu lassen. wenn es wieder probleme gäbe, sollte doch dann nur ein adapter abstürzen und der rest läuft noch ! ist das eine gute idee?
-
sorry - stimmt ja- der absturz kam durch das andere skript.
ich hätte da noch eine andere frage: macht es sinn einen 2ten js-adapter zu installieren und darin die beiden alexa scripts laufen zu lassen. wenn es wieder probleme gäbe, sollte doch dann nur ein adapter abstürzen und der rest läuft noch ! ist das eine gute idee? `
Natürlich macht eine zweite (dritte) javascript-Instanz dafür Sinn. Habe ich und viele andere so im Einsatz.Wichtige Scripte, die ohne Internet funktionieren, habe ich in der Instanz.0.
Bei mir sind die Scripte, die mit Internet arbeiten in Instanz.1 und die zum Testen in Instanz.2.
-
danke - werd ich einrichten
-
Hallo Zusammen,
ich erhalte immer die Meldung, dass LogOn failed
-
Alle Geräte schon neugestartet
-
User und Passwort x-mal überprüft (geschrieben, kopiert, verglichen, im Browser getestet usw.)
-
mit allen Browsern mich angemeldet … auch Handy
-
2fa hab ich nicht somit auch leer gelassen
ich weiß nicht mehr weiter
5201_logon.png -
-
ich hatte den fehler mittlerweile auch wieder - diesmal habe ich ihn durch aus - und einloggen in die alexa-webseite wegbekommen. während des einloggens habe ich dann die abfrage mit dem code bekommen (wird über email gesendet), der vom script nicht abgedeckt ist. ich habe auch den eindruck, dass man etwas warten muss (einige stunden) bis man weitermachen kann (ist nur so ein eindruck).
warum das so ist, kann ich dir leider nicht sagen - vielleicht hat ja stefan noch einen blick darauf
-
Danke für die Hilfe!
Am nächsten Tag erneut probiert. NICHTS anders gemacht…und es hat geklappt.
Komische Sache :?
-
Ja, leider zeigt Amazon die Code-Seite manchmal mal wieder an, dann geht der Logon nicht.
Muss ich mir noch genauer anschauen, ob es da eine Möglichkeit gibt, richtig drauf zu reagieren…
-
Seit Freitag bekomme ich keinen validen Cookie mehr hin.
Der Login scheitert nur noch
Kann ich von Hand irgendwas bewirken?
Mir fehlt die Fuktion doch sehr … hatte mich schon so dran gewöhnt
EDIT:
hat sich erledigt!
hab die Eingaben von Hand gemacht … aufwendig, aber wirkungsvoll
-
Vielen Dank für dieses Script! Perfekt.
Wir haben ja hier folgenden Konflikt:
-
Die Login-Daten dürfen keinesfalls im Klartext im ioBroker gespeichert werden.
-
Das Cookie läuft regelmäßig ab, also jetzt wohl nicht nach 2-3 Tagen, aber durchaus alle 1-2 Wochen (?), ggf. länger. Bei Ungültigkeit des Cookies geht dann erst mal plötzlich kein Zugriff mehr. Man muss dann manuell rein, und aktualisieren.
Da wir die Login-Daten nicht im ioBroker speichern sollten, ist eine automatische Aktualisierung des Cookies per Cron ausgeschlossen. Im Script ist zwar ein Cron hinterlegt, aber der lässt nur das Script starten und überprüfen, ob das Cookie noch gültig ist.
Mein Ansatz ist daher:
a) Die Login-Daten verschlüsselt z.B. in einem State speichern
b) Das Cookie z.B. 2x pro Woche per Cron automatisch aktualisieren, selbst wenn es noch funktioniert.
Punkt (b) kann man im Script wie folgt machen. Dadurch wird nur bei Auslösen des Cronjobs das Cookie automatisch aktualisiert, selbst wenn es noch aktuell ist.
! ````
//------------------------------------------------------------------------------
// Start der Script-Logik
! // Cron Schedule
schedule(cronStr, mainCron);
! // Function wird ausgeführt, wenn CronJob greift. Wir wollen hierdurch die Variable "isCron" auf true setzen, um damit später weiter umgehen zu können.
var isCron = false;
function mainCron() {
// Variable setzen
isCron = true;
// Main Function ausführen
main();
}
! // Sofortstart
setTimeout(main, 1000);
! function main() {
! if(logOn) log("Start LogOn Process");
! // Falls das Script per Cron ausgelöst wird, lesen wir das Cookie neu aus.
var storedCookie = '';
if (isCron === true) {
storedCookie = ''; // Hier leeren wir die Variable. Das triggert, dass das Cookie automatisch neu ausgelesen wird.
} else {
storedCookie = "" + getState(idAlexaLogonCookie).val;
}
! if (storedCookie !== null && storedCookie !== "") {
storedCookie = storedCookie.replace(/\/g, "");
checkIfCookieIsStillValid(storedCookie);
} else {
logIntoAmazonAccount();
}
! }Punkt (a), also die Login-Daten, ist eine Herausforderung. Ich habe mir hier so beholfen: 2 Functions, eine verschlüsselt, die andere entschlüsselt. Dadurch kann man die Login-Daten verschlüsselt in Datenpunkten ablegen und per "entschlüssel"-Funktion auf diese zugreifen. Beispiel:
username = xdecrypt(getState('javascript.0.xxx.user').val, false);
password = xdecrypt(getState('javascript.0.xxx.pw').val, false);Jeder "Dieb" kann dadurch natürlich immer noch über die Funktion an die Klar-Logins kommen, keine Frage, aber zumindest sind die Login-Daten nicht im Klartext abgelegt. Ich teste das so derzeit, und es funktioniert prima. Aber bitte nicht nachmachen :) Habt ihr noch bessere Ideen zur Riskominimierung hinsichtlich der Hinterlegung der Login-Daten?
-
-
Seit heute habe ich auch die Fehler bei Cookie hohlen.
Ich habe jetzt wie hier https://blog.loetzimmer.de/2017/10/amaz … -echo.htmlrealisiert, folgende Werte überall im Script geändert:
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0',
'Content-Type': 'text/plain',
'Accept-Language': 'de,en-US',
jetzt kommt der Cookie wieder automatisch
-
Seit heute habe ich auch die Fehler bei Cookie hohlen.
Ich habe jetzt wie hier https://blog.loetzimmer.de/2017/10/amaz … -echo.htmlrealisiert, folgende Werte überall im Script geändert:
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0',
'Content-Type': 'text/plain',
'Accept-Language': 'de,en-US',
jetzt kommt der Cookie wieder automatisch `
Danke - jetzt funktioniert es bei mir auch wieder - mit dieser Änderung
Gruß
Dirk
-
Hallo,
irgendwie logt er sich bei mir seit einiger Zeit überhaupt nicht mehr ein:(.
Das LoginScript funktioniert also so nicht mehr.
Irgendwo hatte mal jemand etwas von "Cookie manuell erneuern" geschrieben.
Kann mir dazu jemand genauere Informationen geben?
Wie mache ich meine Alexa-Scripts wieder lauffähig?
Ohne Cookie geht da ja anscheinend absolut gar nichts:(.
-
habe das selbe problem - seit 3 tagen geht nix mehr - würde mich auch über unterstützung freuen
habe auch das mit der user-agent änderung probiert - geht auch nicht