Files
immich/mobile-v2/lib/utils/immich_auth_interceptor.dart
T
shenlong-tanwen 75448ce56b add proper logging
2025-02-26 08:58:19 +05:30

30 lines
880 B
Dart

import 'package:dio/dio.dart';
import 'package:immich_mobile/presentation/router/router.dart';
import 'package:immich_mobile/service_locator.dart';
import 'package:immich_mobile/utils/mixins/log_context.mixin.dart';
class ImmichAuthInterceptor extends Interceptor with LogContext {
String? _accessToken;
void setAccessToken(String token) => _accessToken = token;
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
if (_accessToken != null) {
options.headers["x-immich-user-token"] = _accessToken;
}
handler.next(options);
}
@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
if (response.statusCode == 401) {
log.severe("Token expired. Logging user out");
di<AppRouter>().replaceAll([const LoginRoute()]);
return;
}
handler.next(response);
}
}