fix: Login-Fehlermeldung zeigt jetzt saubere Server-Nachricht, Passwort-Reset Baka
This commit is contained in:
@@ -64,35 +64,23 @@ class AuthService {
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
final data = jsonDecode(response.body);
|
||||
MeloLogger().zustand('auth_response', {'body': response.body.substring(0, response.body.length.clamp(0, 200))});
|
||||
_token = data['token'] as String?;
|
||||
_user = user;
|
||||
|
||||
if (_token != null && _token!.isNotEmpty) {
|
||||
// Token speichern
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setString('baka_token', _token!);
|
||||
await prefs.setString('baka_user', _user);
|
||||
|
||||
MeloLogger().aktion('auth_login_ok', {'user': _user});
|
||||
return AuthResult.ok;
|
||||
}
|
||||
// 200 aber kein Token — zeige was der Server wirklich geschickt hat
|
||||
final preview = response.body.length > 100
|
||||
? '${response.body.substring(0, 100)}...'
|
||||
: response.body;
|
||||
MeloLogger().fehler('auth_login_no_token', preview);
|
||||
return AuthResult.fehlgeschlagen('Server: $preview');
|
||||
// 200 aber kein Token → Fehler vom Server
|
||||
final serverMsg = data['message'] as String? ?? data['error'] as String? ?? 'Unbekannt';
|
||||
return AuthResult.fehlgeschlagen(serverMsg);
|
||||
}
|
||||
|
||||
// Nicht-200: Fehler vom Server parsen
|
||||
String fehler = 'Unbekannter Fehler';
|
||||
try {
|
||||
final data = jsonDecode(response.body);
|
||||
fehler = data['error'] as String? ?? data['message'] as String? ?? 'Login fehlgeschlagen (${response.statusCode})';
|
||||
} catch (_) {
|
||||
fehler = 'Server nicht erreichbar (${response.statusCode})';
|
||||
}
|
||||
// Nicht-200
|
||||
String fehler = 'Login fehlgeschlagen (${response.statusCode})';
|
||||
|
||||
MeloLogger().fehler('auth_login_fail', fehler);
|
||||
return AuthResult.fehlgeschlagen(fehler);
|
||||
|
||||
Reference in New Issue
Block a user