8000 feat: ui oauth integration by lehmanju · Pull Request #21266 · evcc-io/evcc · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

feat: ui oauth integration #21266

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

lehmanju
Copy link
Contributor

FollowUp für #21003

Ziel: Login/Logout via OAuth irgendwie in die UI zu integrieren.

Möglichkeiten:

  1. Beim Testen der Konfiguration eines Fahrzeugs wird ermittelt, ob ein Login erforderlich ist. Dabei wird man automatisch auf die Loginseite geleitet.
  2. Es gibt irgendwo einen Knopf "Login", den man drücken kann. Dieser erscheint, je nachdem ob das ausgewählte Template einen Login erfordert.

@naltatis naltatis added enhancement New feature or request ux User experience/ interface experimental Experimental feature labels May 16, 2025
@lehmanju
Copy link
Contributor Author

Persönlich tendiere ich zu 1, auch weil man keinen zusätzlichen Login Button braucht, der nur manchmal da ist:

  1. Beim Testen der Konfiguration werden Werte und Fehler via testInstance zurückgegeben. Dabei kann auch die LoginUrl übermittelt werden. Beim Iterieren über die Rückgabewerte in test.js wird nach einem Authorization Fehler gesucht. Falls dieser vorhanden ist, wird man in einem neuen Tab auf die Login Seite des Herstellers geleitet. Nach erfolgreichem Login, sollte ein erneutes Ausführen des Tests erfolgreich sein.

Falls ein vorhandenes Vehicle editiert wird, kann ein zusätzlicher Logout Button angezeigt werden.

@naltatis
Copy link
Member

Haben wir eine Datenabhängigkeit von Nutzereingaben (bspw. VIN, ...) zu des Login Buttons? Also, dass wir die richtige URL erst dann erzeugen können, wenn der Nutzer bestimmte Felder ausgefüllt hat?

Generell würde ich Variante 2 bevorzugen. Also ein Login/Logout Button, sofern erforderlich. Den aktuelle Status des Auth-Vorgangs und Logout müssen wir auf der Seite ja ohnehin anzeigen. Die "Test"-Funktion würde ich unabhängig davon sehen. Aus Nutzersicht kann es unerwartet sein, dass ein Klick auf Test oder Speichern zu einem Absprung nach Außen führt. Beim Klick auf einen "Anmelden" (o.ä.) Button würde man so etwas ja durchaus erwarten.

Spannend ist ja auch der Rücksprung ins Config UI. Hier müssten wir dem Nutzer ja das, ggf. noch nicht gespeicherte, Formular/Modal wieder anzeigen.

@lehmanju
Copy link
Contributor Author

Ja, Datenabhängigkeit besteht, zumindest bei Volvo. Bei anderen APIs sind die Oauth Einstellungen fest.

Einfachste Lösung, die mir einfällt, ist im Template einen Switch uiLogin: true einzubauen. Dann beim Laden der möglichen Templates entsprechend Button anzeigen oder nicht. Leider ist die Url für den Klick zu dem Zeitpunkt noch nicht bekannt.

@naltatis
Copy link
Member
naltatis commented May 17, 2025

Leider ist die Url für den Klick zu dem Zeitpunkt noch nicht bekannt.

Könnten wir ja auch über einen Redirect über uns selbst spielen - zusammen mit den Nutzer-Eingaben als Params.

Datenabhängigkeit: wir könnten den neuen "Login" Button, genau wie Test und Save, auch an die Validity des Forms koppeln.

Also de-facto gleiche Signatur/Verhalten wie der Test-Endpunkt nur mit einer dedizierten Aufgabe: Starten des OAuth-Flows.

@github-actions github-actions bot added the stale Outdated and ready to close label May 24, 2025
@github-actions github-actions bot closed this May 29, 2025
@naltatis naltatis removed the stale Outdated and ready to close label May 29, 2025
@naltatis naltatis reopened this May 29, 2025
@github-actions github-actions bot added the stale Outdated and ready to close label Jun 5, 2025
@lehmanju
Copy link
Contributor Author
lehmanju commented Jun 6, 2025

gerade leider wenig Zeit hieran weiterzuarbeiten.

Ganz interessant ist die Herangehensweise von HomeAssistant bzgl OAuth: https://www.home-assistant.io/integrations/application_credentials/

(als Orientierung)

@github-actions github-actions bot removed the stale Outdated and ready to close label Jun 6, 2025
@github-actions github-actions bot added the stale Outdated and ready to close label Jun 13, 2025
@naltatis naltatis added backlog Things to do later and removed stale Outdated and ready to close labels Jun 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backlog Things to do later enhancement New feature or request experimental Experimental feature ux User experience/ interface
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0