refresh token

This commit is contained in:
efrilm
2025-09-20 18:05:15 +07:00
parent a58d1040af
commit 59a8d7f661
3 changed files with 43 additions and 75 deletions
+16 -4
View File
@@ -1,6 +1,9 @@
import 'package:awesome_dio_interceptor/awesome_dio_interceptor.dart';
import 'package:dio/dio.dart';
import 'package:enaklo_pos/core/constants/variables.dart';
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
import 'package:enaklo_pos/data/datasources/auth_local_datasource.dart';
import 'package:enaklo_pos/data/models/response/auth_response_model.dart';
import 'package:enaklo_pos/presentation/auth/login_page.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
@@ -124,13 +127,17 @@ class AuthInterceptorWithRefresh extends Interceptor {
Future<bool> _tryRefreshToken() async {
try {
final prefs = await SharedPreferences.getInstance();
final refreshToken = prefs.getString('refresh_token');
final authData = await AuthLocalDataSource().getAuthData();
if (refreshToken == null) return false;
final url = '${Variables.baseUrl}/api/v1/auth/refresh';
final response = await Dio().post(
'YOUR_REFRESH_TOKEN_ENDPOINT',
data: {'refresh_token': refreshToken},
url,
options: Options(
headers: {
'Authorization': 'Bearer ${authData.refreshToken}',
},
),
);
if (response.statusCode == 200) {
@@ -140,6 +147,11 @@ class AuthInterceptorWithRefresh extends Interceptor {
await prefs.setString('auth_token', newToken);
await prefs.setString('refresh_token', newRefreshToken);
AuthResponseModel authResponseModel =
AuthResponseModel.fromMap(response.data['data']);
AuthLocalDataSource().saveAuthData(authResponseModel);
return true;
}
} catch (e) {