import 'package:dio/dio.dart'; import 'auth_token_provider.dart'; /// Dio-Interceptor, der pro Request den aktuellen Access-Token vom /// `AuthTokenProvider` zieht und als `Authorization: Bearer …`-Header /// anhängt. Provider-Fehler werden geloggt, der Request läuft trotzdem /// weiter — das Backend antwortet dann mit 401, was der reguläre /// Error-Handling-Pfad behandelt. class HolzleitnerAuthInterceptor extends Interceptor { HolzleitnerAuthInterceptor(this._tokenProvider); final AuthTokenProvider _tokenProvider; @override Future onRequest( RequestOptions options, RequestInterceptorHandler handler, ) async { try { final token = await _tokenProvider.currentAccessToken(); if (token != null) { options.headers['Authorization'] = 'Bearer $token'; } } catch (e, stack) { // TODO Phase B: hier ein strukturiertes Logging-Framework // einhängen statt print. // ignore: avoid_print print('[HolzleitnerAuthInterceptor] Token-Provider hat geworfen: $e\n$stack'); } handler.next(options); } }