This commit is contained in:
Phuoc Nguyen
2025-10-10 18:06:40 +07:00
parent 77440ac957
commit 63e397d7e6
12 changed files with 1060 additions and 16 deletions

View File

@@ -26,19 +26,24 @@ class AuthRepositoryImpl implements AuthRepository {
Future<Either<Failure, AuthResponse>> login({
required String email,
required String password,
bool rememberMe = false,
}) async {
try {
print('🔐 Repository: Starting login...');
print('🔐 Repository: Starting login (rememberMe: $rememberMe)...');
final loginDto = LoginDto(email: email, password: password);
final authResponse = await remoteDataSource.login(loginDto);
print('🔐 Repository: Got response, token length=${authResponse.accessToken.length}');
// Save token to secure storage
await secureStorage.saveAccessToken(authResponse.accessToken);
print('🔐 Repository: Token saved to secure storage');
// Save token to secure storage only if rememberMe is true
if (rememberMe) {
await secureStorage.saveAccessToken(authResponse.accessToken);
print('🔐 Repository: Token saved to secure storage (persistent)');
} else {
print('🔐 Repository: Token NOT saved (session only - rememberMe is false)');
}
// Set token in Dio client for subsequent requests
// Set token in Dio client for subsequent requests (always for current session)
dioClient.setAuthToken(authResponse.accessToken);
print('🔐 Repository: Token set in DioClient');
@@ -162,16 +167,25 @@ class AuthRepositoryImpl implements AuthRepository {
@override
Future<bool> isAuthenticated() async {
try {
print('🔍 Checking authentication...');
final hasToken = await secureStorage.hasAccessToken();
print('🔍 Has token in storage: $hasToken');
if (hasToken) {
final token = await secureStorage.getAccessToken();
print('🔍 Token retrieved, length: ${token?.length ?? 0}');
if (token != null) {
dioClient.setAuthToken(token);
print('✅ Token loaded from storage and set in DioClient');
return true;
}
}
print('❌ No token found in storage');
return false;
} catch (e) {
print('❌ Error checking authentication: $e');
return false;
}
}