Seite 46 von 74
Re: SoC für den neuen Opel Corsa e (ggf. auch Peugeot 208e?)
Verfasst: Mi Nov 16, 2022 8:50 am
von JHC
mrinas hat geschrieben: ↑Mi Nov 16, 2022 8:06 am
Was man sicherlich noch besser lösen könnte wäre die gesamte Authentifikation. Bei jedem Aufruf sich komplett neu anzumelden ist ja eigentlich nicht so unbedingt im Sinne des Erfinders. Schicker wäre es sich einmal anzumelden und dann nur access und refresh tokens zu speichern. Dann könnte man sich sogar sparen die Zugangsdaten in der Box abzulegen.
Bräuchte allerdings Funktionen um die Tokens regelmässig zu aktualisieren. Und das könnte ja sogar eine generische Funktion aus der openWB selber sein um nach ablaufenden Tokens zu suchen und über standardisierte Funktionen im SoC Modul die Tokens dann erneuern zu lassen. So oder so ähnlich.
Das schaffen nicht mal die PSA Android Apps, auch dort muss man sich (un-)regelmäßig neu anmelden.
Die Credentials sollten wir bei uns nicht rausnehmen, so dass wir immer von vorne anfangen könnten.
Den eigentlichen Aufruf könnten wir natürlich optimieren, ob das unterm Strich aber besser ist?
Re: SoC für den neuen Opel Corsa e (ggf. auch Peugeot 208e?)
Verfasst: Mi Nov 16, 2022 9:25 am
von mrinas
Das stimmt natürlich auch wieder. PSA kann einige Dinge, Software & Apps gehört aber definitiv nicht dazu.
So gesehen können wir es auch gleich so lassen wie es ist, hat sich immerhin bewährt.
Re: SoC für den neuen Opel Corsa e (ggf. auch Peugeot 208e?)
Verfasst: Mi Nov 16, 2022 9:55 am
von rleidner
Kommt auch darauf an, wie lange die Token gültig sind.
Ich habe im vwid Modul das Speichern der Token realisiert - in der ramdisk.
D.h. wenn die gespeicherten Token vorhanden sind, wird versucht mit diesen abzufragen.
Nach etwas über 60 min werden die Token bei VWId ungültig und im Modul durch eine neue Authentication erneuert.
Während des Ladens (übliches Intervall 20 min) hilft das, einige Authentications zu vermeiden.
Wenn nicht geladen wird (Intervall 120 min) bringt das natürlich nichts.
Im Fall VW spart das Speichern der Token also etwas, aber nicht allzu viel.
Die Token zu konfigurieren würde keinen Sinn machen.
Re: SoC für den neuen Opel Corsa e (ggf. auch Peugeot 208e?)
Verfasst: Mi Nov 16, 2022 9:58 am
von mrinas
rleidner hat geschrieben: ↑Mi Nov 16, 2022 9:55 am
Kommt auch darauf an, wie lange die Token gültig sind.
Ich habe im vwid Modul das Speichern der Token realisiert - in der ramdisk.
D.h. wenn die gespeicherten Token vorhanden sind, wird versucht mit diesen abzufragen.
Nach etwas über 60 min werden die Token bei VWId ungültig und im Modul durch eine neue Authentication erneuert.
Während des Ladens (übliches Intervall 20 min) hilft das, einige Authentications zu vermeiden.
Wenn nicht geladen wird (Intervall 120 min) bringt das natürlich nichts.
Im Fall VW spart das Speichern der Token also etwas, aber nicht allzu viel.
Die Token zu konfigurieren würde keinen Sinn machen.
Das Access Token hat in i.d.R. eine kurze Lebenszeit, das ist richtig. Es sollte aber auch ein refresh-Token geben mit welchem man sich ein neues Access Token ausstellen lassen kann, auch ohne weitere creds (Benutzername, Kennwort).
Re: SoC für den neuen Opel Corsa e (ggf. auch Peugeot 208e?)
Verfasst: Mi Nov 16, 2022 10:56 am
von rleidner
mrinas hat geschrieben: ↑Mi Nov 16, 2022 9:58 am
Das Access Token hat in i.d.R. eine kurze Lebenszeit, das ist richtig. Es sollte aber auch ein refresh-Token geben mit welchem man sich ein neues Access Token ausstellen lassen kann, auch ohne weitere creds (Benutzername, Kennwort).
OK, verstanden.
Momentan vergleiche und speichere ich beide Token immer zusammen.
Ich werde mal prüfen, ob sich nach 1 Stunde beide oder nur eines ändert.
Re: SoC für den neuen Opel Corsa e (ggf. auch Peugeot 208e?)
Verfasst: Mi Nov 16, 2022 11:09 am
von LutzB
@rleidner
Den Aufwand kannst Du Dir sparen, wenn es JWT Token sind. Die enthalten alle Daten.
https://jwt.io/
Das Refresh Token ist generell länger gültig (macht ja auch sonst keinen Sinn), läuft aber auch irgendwann ab.
Im Tesla SoC ist schon länger so umgesetzt, dass die Zugangsdaten nicht gespeichert werden. Grund dafür ist, dass es inzwischen nicht mehr automatisiert ablaufen kann, da bei der Anmeldung noch ein reCaptcha eingebaut worden ist.
Wie letztendlich mit dem Refesh Token ein neues Token abgerufen werden kann, ist leider sehr individuell. Es gibt zwar einen OAuth Standard, der wird aber teilweise extra abgewandelt (bei z.B. Tesla kann man keine Callback-URL angeben und muss den erzeugten Code manuell abfangen).
Re: SoC für den neuen Opel Corsa e (ggf. auch Peugeot 208e?)
Verfasst: Mi Nov 16, 2022 11:47 am
von JHC
Wir sollten das so einfach wie möglich halten und beim bestehenden Verfahren User/Passwort bleiben.
Die ClientID könnte man theoretisch lösen, wenn openWB als Firma bei PSA nach eigenen Credentials fragt, die wir dann fest hinterlegen.
Das könnte aber finanzielle Auswirkungen haben.
Re: SoC für den neuen Opel Corsa e (ggf. auch Peugeot 208e?)
Verfasst: Mi Nov 16, 2022 12:54 pm
von rleidner
rleidner hat geschrieben: ↑Mi Nov 16, 2022 10:56 am
mrinas hat geschrieben: ↑Mi Nov 16, 2022 9:58 am
Das Access Token hat in i.d.R. eine kurze Lebenszeit, das ist richtig. Es sollte aber auch ein refresh-Token geben mit welchem man sich ein neues Access Token ausstellen lassen kann, auch ohne weitere creds (Benutzername, Kennwort).
OK, verstanden.
Momentan vergleiche und speichere ich beide Token immer zusammen.
Ich werde mal prüfen, ob sich nach 1 Stunde beide oder nur eines ändert.
LutzB hat geschrieben: ↑Mi Nov 16, 2022 11:09 am
@rleidner
Den Aufwand kannst Du Dir sparen, wenn es JWT Token sind. Die enthalten alle Daten.
https://jwt.io/
@LutzB, danke für den Hinweis.
Ja, es sind JWT token und die kann ich mit dem Tool auf der jwt-Seite lesbar machen.
Die expiration timestamps sind als epoch enthalten und so gültig:
accessToken ca. 1 Stunde.
refreshToken ca. 6 Monate, momentan 15.Mai.
Der Code im vwid-Modul macht das auch gut, d.h. er versucht
1. per accessToken die Daten zu holen, wenn das nicht geht
2. per refreshToken einen neuen accessToken zu holen und damit die Daten zu holen, wenn das nicht geht
3. per userid/password neu zu verbinden, beide Token und damit die Daten zu holen.
Mit den 6 Monaten Gültigkeit könnte es sogar Sinn machen, den RefreshToken längerfristig zu speichern.
Momentan werden die Token des vwid in einem binary File in der ramdisk gespeichert und damit bei jedem Restart der owb "vergessen".
Re: SoC für den neuen Opel Corsa e (ggf. auch Peugeot 208e?)
Verfasst: Mi Nov 16, 2022 1:07 pm
von Flocki
Hi,
im Kia-Modul mache ich das ja ähnlich mit den Tokens, daher ein Hinweis von mir:
Denkt daran, den Token zu löschen, wenn auf der Konfigurationsseite ein neuer Benutzername eingegeben wird.
Ansonsten würden mit einem gültigen Token weiter Daten aus dem alten Account abgeholt, obwohl der Benutzer jetzt gerne Daten von einem anderen Account hätte.
Gruß,
Florian
Re: SoC für den neuen Opel Corsa e (ggf. auch Peugeot 208e?)
Verfasst: Mi Nov 16, 2022 1:41 pm
von rleidner
Flocki hat geschrieben: ↑Mi Nov 16, 2022 1:07 pm
Hi,
im Kia-Modul mache ich das ja ähnlich mit den Tokens, daher ein Hinweis von mir:
Denkt daran, den Token zu löschen, wenn auf der Konfigurationsseite ein neuer Benutzername eingegeben wird.
Ansonsten würden mit einem gültigen Token weiter Daten aus dem alten Account abgeholt, obwohl der Benutzer jetzt gerne Daten von einem anderen Account hätte.
Gruß,
Florian
Guter Punkt, danke.
Ich habe mir das gerade noch mal angesehen:
Im VW Modul wird beim Abholen der Daten die vin als Parameter mitgegeben.
Schritt 1 und 2 (post weiter oben) werden (hoffentlich) fehlschlagen, wenn die vin nicht im Account gefunden wird.
Nach Schritt 3 sollte alles wieder in sync sein.
Oder übersehe ich da was?