Ich kann nicht zu 100% sagen, dass es zwischen Cupra und anderen Firmen nicht irgendwelche absprachen/vereinbarungen gibt, aber offiziell gibt es mMn keine API. Allein schon, dass man bei allen sein username + Passwort angeben muss zeigt, dass es keine offizielle API ist da es für Cupra bzw. VW ziemlich einfach wäre hier eine Client ID und URL für Drittanbieter anzulegen so dass dort kein Passwort hinterlegt werden muss sondern ein normaler login Prozess über OIDC verwendet werden kann. Intern nutzt VW das ja auch für ihre Apps.
Alle Implementationen bisher die ich gesehen hab laden die Loginseite und "klicken" sich intern durch bis sie an den Token kommen. Anschließend können sie die internen APIs der Apps nutzen. Diese sind aber natürlich nur intern für Cupra gedacht und nicht öffentlich somit kann Cupra hier wenn sie wollen natürlich alles mögliche ändern. Sind aber meistens wenig Änderung die etwas kaputt machen da die Apps ja auch ohne Update funktionieren sollten.
Der von dir angegebene Link funktioniert bei mir im Moment gar nicht. Zuerst bin ich noch auf die Login-Seite gelangt, die Site ist dann aber nach Klick auf "Login" hängen geblieben. Jetzt, wenige Minuten später, kann ich die Seite nicht mal mehr laden... 😪
Wenn die Seite nicht läd, dann heißt das eigentlich, dass alles passt da er dann versucht auf "cupra://oauth-callback" weiterzuleiten was in einem normalen browser nicht geht aber auf dem Handy dann zurück in die App leitet. Wurde dir beim Login nach username und Passwort dort kein extra Dialog angezeigt der eine Zustimmung erfordert? Jetzt könnte diese Zustimmung höchstens noch client abhängig sein. Also jenachdem welche App man benutzt. Das würde dann den Consent-Screen z.B. bei dir nicht anzeigen aber wenn du dich über die Seat App einloggst wäre er da. Wenn jetzt Solarmanager hier die Seat App und nicht die Cupra app "faked", dann würde er auch nicht weiter als bis zu dem Bildschirm kommen.
Der Solarmanager nutzt nur die Cupra Logindaten (User/Passwort) die ich selber auch für den Login benutze
Ist das eine Opensource Lösung? Dann kann ich gerne mal nachsehen welche client_id sie für den Login benutzen.
Hab grad mal geschaut. Scheint keine OpenSource Anwendung zu sein.
Die Client ID sagt dem VW Loginserver welche App gerade versucht sich einzuloggen (Cupra, Seat, Skoda...).
Hast du bei solarmanager Cupra oder Seat angegeben? Vielleicht mal anstelle von Cupra Seat probieren da die Seat App auch für Cupra funktioniert.
EVCC nutzt z.B. bei Cupra diese ClientID die du auch in der URL von mir oben findest:
evcc/vehicle/seat/cupra/params.go at master · evcc-io/evcc · GitHub
Für seat ist es diese hier:
evcc/vehicle/seat/params.go at master · evcc-io/evcc · GitHub
Das heißt wenn man in der URL von mir oben die redirectUrl und client_id entsprechend austauscht kommt man zur seat login seite:
https://identity.vwgroup.io/oidc/v1/authorize?client_id=3c8e98bc-3ae9-4277-a563-d5ee65ddebba%40apps_vw-dilab_com&scope=openid%20profile%20mbb&response_type=code%20id_token%20token&redirect_uri=seatconnect%3A%2F%2Fidentity-kit%2Flogin&nonce=wkaefmmixbnclqwpefobnnljfdjvoexwwtxphrwvjfi&state=797c8727-2281-4aac-82b2-a82fb32f5a09
Du könntest versuchen dich auch nochmal über den link einzuloggen.
So ein Bildschirm an dem sich der automatische Login Prozess oft aufhängt sieht in etwa so aus:
pasted-from-clipboard.png