34 lines
956 B
Dart
34 lines
956 B
Dart
import 'package:dio/dio.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
class ApiClient {
|
|
static const String baseUrl = 'http://192.168.100.33:8090/api';
|
|
|
|
static final Dio _dio = Dio(BaseOptions(
|
|
baseUrl: baseUrl,
|
|
connectTimeout: const Duration(seconds: 10),
|
|
receiveTimeout: const Duration(seconds: 15),
|
|
headers: {'Content-Type': 'application/json'},
|
|
))
|
|
..interceptors.add(_AuthInterceptor());
|
|
|
|
static Dio get instance => _dio;
|
|
}
|
|
|
|
class _AuthInterceptor extends Interceptor {
|
|
@override
|
|
void onRequest(RequestOptions options, RequestInterceptorHandler handler) async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
final token = prefs.getString('jwt_token');
|
|
if (token != null) {
|
|
options.headers['Authorization'] = 'Bearer $token';
|
|
}
|
|
handler.next(options);
|
|
}
|
|
|
|
@override
|
|
void onError(DioException err, ErrorInterceptorHandler handler) {
|
|
handler.next(err);
|
|
}
|
|
}
|