Skip to content

Commit 48cbcfe

Browse files
committed
refactor(auth): replace print statements with logging
- Replaced `print` statements with `Logger`. - Improved logging for better debugging. - Added error handling for token validation. - Used finer logging for detailed info. - Improved logging messages clarity.
1 parent 8e52d81 commit 48cbcfe

File tree

1 file changed

+26
-23
lines changed

1 file changed

+26
-23
lines changed

lib/src/middlewares/authentication_middleware.dart

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import 'package:dart_frog/dart_frog.dart';
22
import 'package:ht_api/src/services/auth_token_service.dart';
33
import 'package:ht_shared/ht_shared.dart';
4+
import 'package:logging/logging.dart';
5+
6+
final _log = Logger('AuthMiddleware');
47

58
/// Middleware to handle authentication by verifying Bearer tokens.
69
///
@@ -17,69 +20,69 @@ import 'package:ht_shared/ht_shared.dart';
1720
Middleware authenticationProvider() {
1821
return (handler) {
1922
return (context) async {
20-
print('[AuthMiddleware] Entered.');
23+
_log.finer('Entered.');
2124
// Read the interface type
2225
AuthTokenService tokenService;
2326
try {
24-
print('[AuthMiddleware] Attempting to read AuthTokenService...');
27+
_log.finer('Attempting to read AuthTokenService...');
2528
tokenService = context.read<AuthTokenService>();
26-
print('[AuthMiddleware] Successfully read AuthTokenService.');
29+
_log.finer('Successfully read AuthTokenService.');
2730
} catch (e, s) {
28-
print('[AuthMiddleware] FAILED to read AuthTokenService: $e\n$s');
31+
_log.severe('FAILED to read AuthTokenService.', e, s);
2932
// Re-throw the error to be caught by the main error handler
3033
rethrow;
3134
}
3235
User? user;
3336

3437
// Extract the Authorization header
35-
print('[AuthMiddleware] Attempting to read Authorization header...');
38+
_log.finer('Attempting to read Authorization header...');
3639
final authHeader = context.request.headers['Authorization'];
37-
print('[AuthMiddleware] Authorization header value: $authHeader');
40+
_log.finer('Authorization header value: $authHeader');
3841

3942
if (authHeader != null && authHeader.startsWith('Bearer ')) {
4043
// Extract the token string
4144
final token = authHeader.substring(7); // Length of 'Bearer '
42-
print('[AuthMiddleware] Extracted Bearer token.');
45+
_log.finer('Extracted Bearer token.');
4346
try {
44-
print('[AuthMiddleware] Attempting to validate token...');
47+
_log.finer('Attempting to validate token...');
4548
// Validate the token using the service
4649
user = await tokenService.validateToken(token);
47-
print(
48-
'[AuthMiddleware] Token validation returned: ${user?.id ?? 'null'}',
50+
_log.finer(
51+
'Token validation returned: ${user?.id ?? 'null'}',
4952
);
5053
if (user != null) {
51-
print(
52-
'[AuthMiddleware] Authentication successful for user: ${user.id}',
53-
);
54+
_log.info('Authentication successful for user: ${user.id}');
5455
} else {
55-
print(
56-
'[AuthMiddleware] Invalid token provided (validateToken returned null).',
56+
_log.warning(
57+
'Invalid token provided (validateToken returned null).',
5758
);
5859
// Optional: Could throw UnauthorizedException here if *all* routes
5960
// using this middleware strictly require a valid token.
6061
// However, providing null allows routes to handle optional auth.
6162
}
6263
} on HtHttpException catch (e) {
6364
// Log token validation errors from the service
64-
print('Token validation failed: $e');
65+
_log.warning('Token validation failed.', e);
6566
// Let the error propagate if needed, or handle specific cases.
6667
// For now, we treat validation errors as resulting in no user.
6768
user = null; // Keep user null if HtHttpException occurred
6869
} catch (e, s) {
6970
// Catch unexpected errors during validation
70-
print(
71-
'[AuthMiddleware] Unexpected error during token validation: $e\n$s',
71+
_log.severe(
72+
'Unexpected error during token validation.',
73+
e,
74+
s,
7275
);
7376
user = null; // Keep user null if unexpected error occurred
7477
}
7578
} else {
76-
print('[AuthMiddleware] No valid Bearer token found in header.');
79+
_log.finer('No valid Bearer token found in header.');
7780
}
7881

7982
// Provide the User object (or null) into the context
8083
// This makes `context.read<User?>()` available downstream.
81-
print(
82-
'[AuthMiddleware] Providing User (${user?.id ?? 'null'}) to context.',
84+
_log.finer(
85+
'Providing User (${user?.id ?? 'null'}) to context.',
8386
);
8487
return handler(context.provide<User?>(() => user));
8588
};
@@ -96,14 +99,14 @@ Middleware requireAuthentication() {
9699
return (context) {
97100
final user = context.read<User?>();
98101
if (user == null) {
99-
print(
102+
_log.warning(
100103
'Authentication required but no valid user found. Denying access.',
101104
);
102105
// Throwing allows the central errorHandler to create the 401 response.
103106
throw const UnauthorizedException('Authentication required.');
104107
}
105108
// If user exists, proceed to the handler
106-
print('Authentication check passed for user: ${user.id}');
109+
_log.info('Authentication check passed for user: ${user.id}');
107110
return handler(context.provide<User>(() => user));
108111
};
109112
};

0 commit comments

Comments
 (0)