YouTube-Tab: Server-User brauchen keine eigene Baka-Anmeldung mehr
Server-User (Dustin, Baka, Tinker) melden sich beim Öffnen des YouTube-Bereichs automatisch im Hintergrund mit ihren Navidrome- Zugangsdaten beim Baka-Konto an (BakaAuth.autoAnmelden) — die manuelle Anmeldung bleibt nur für Gäste sichtbar. Schlägt die Auto-Anmeldung fehl, gibt es einen Rückfallweg zur manuellen Anmeldung, statt den User auszusperren. Login-Buttons vergrößert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcDiyJdVRqh1TtJk5JiabX
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
f0313724d4
commit
f604dc7635
@@ -4,6 +4,8 @@ import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
import 'navidrome_service.dart';
|
||||
|
||||
/// Ablage für den Anmelde-Token. Als Schnittstelle, damit Tests ohne die
|
||||
/// Plattform-Kanäle von FlutterSecureStorage auskommen.
|
||||
abstract class TokenSpeicher {
|
||||
@@ -100,6 +102,15 @@ class BakaAuth extends ChangeNotifier {
|
||||
'Anmeldung fehlgeschlagen (${antwort.statusCode})';
|
||||
}
|
||||
|
||||
/// Meldet automatisch an, falls noch nicht angemeldet — für Server-User
|
||||
/// (Dustin, Baka, Tinker), die keine eigene Baka-Anmeldung mehr sehen
|
||||
/// sollen: der Proxy nutzt seine YouTube-Cookies für jeden
|
||||
/// authentifizierten Aufruf ohnehin automatisch.
|
||||
Future<void> autoAnmelden(String benutzer, String passwort) async {
|
||||
if (istAngemeldet || benutzer.isEmpty || passwort.isEmpty) return;
|
||||
await anmelden(benutzer, passwort);
|
||||
}
|
||||
|
||||
Future<void> abmelden() async {
|
||||
_token = null;
|
||||
_benutzer = '';
|
||||
@@ -108,3 +119,20 @@ class BakaAuth extends ChangeNotifier {
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
/// Prüft, ob ein Server-User verbunden ist, und meldet ihn dann automatisch
|
||||
/// beim Baka-Konto an — geteilte Logik für den YouTube-Bereich
|
||||
/// (downloads_screen.dart) und die YT-Suche (youtube_search_screen.dart).
|
||||
/// Gäste (kein Server-Account) bleiben unangetastet. Schlägt die
|
||||
/// Hintergrund-Anmeldung fehl (falsche/fehlende Zugangsdaten, Server nicht
|
||||
/// erreichbar), meldet [autoLoginFehlgeschlagen] das zurück — sonst bliebe
|
||||
/// so ein User ohne jeden Weg mehr zur manuellen Baka-Anmeldung.
|
||||
Future<({bool serverUser, bool autoLoginFehlgeschlagen})> pruefeServerUser(
|
||||
NavidromeService navidrome, BakaAuth auth) async {
|
||||
await navidrome.ladeGespeicherteZugangsdaten();
|
||||
if (!navidrome.istVerbunden) {
|
||||
return (serverUser: false, autoLoginFehlgeschlagen: false);
|
||||
}
|
||||
await auth.autoAnmelden(navidrome.benutzer, navidrome.passwort);
|
||||
return (serverUser: true, autoLoginFehlgeschlagen: !auth.istAngemeldet);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user