refreshYouTubeTokens method
Refresh YouTube tokens
Implementation
Future<bool> refreshYouTubeTokens() async {
try {
debugPrint('🔄 Refreshing YouTube tokens...');
final googleSignIn = _initializeGoogleSignIn();
final GoogleSignInAccount? currentUser = await googleSignIn.signInSilently();
if (currentUser == null) {
debugPrint('❌ No current Google user found');
return false;
}
// Get fresh tokens
final GoogleSignInAuthentication auth = await currentUser.authentication;
// Get stored auth token
final authToken = await getFromSecure('onairos_jwt_token') ??
await getFromSecure('onairos_user_token') ??
await getFromSecure('auth_token');
if (authToken == null) {
debugPrint('❌ No auth token found for YouTube refresh');
return false;
}
// Send refreshed tokens to backend
final refreshResponse = await http.post(
Uri.parse('$_apiBaseUrl/youtube/refresh-token'),
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer $authToken',
},
body: jsonEncode({
'accessToken': auth.accessToken,
'idToken': auth.idToken,
'serverAuthCode': auth.serverAuthCode,
'userEmail': currentUser.email,
'tokenExpiry': DateTime.now().add(const Duration(hours: 1)).toIso8601String(),
'timestamp': DateTime.now().toIso8601String(),
}),
);
if (refreshResponse.statusCode == 200) {
final responseData = jsonDecode(refreshResponse.body);
debugPrint('✅ YouTube tokens refreshed successfully: $responseData');
return true;
} else {
final errorData = refreshResponse.body;
debugPrint('❌ YouTube token refresh failed: ${refreshResponse.statusCode} $errorData');
return false;
}
} catch (error) {
debugPrint('❌ Error refreshing YouTube tokens: $error');
return false;
}
}