getToken method
Retrieves a valid token, returns null if expired
Implementation
Future<String?> getToken(String userId) async {
final tokenInfo = _tokens[userId];
if (tokenInfo != null && tokenInfo.isValid) {
return tokenInfo.token;
}
return null;
}