From 878bfce095cf071ee1a6cec8b26eeeaf93154c92 Mon Sep 17 00:00:00 2001 From: heyethereum Date: Sun, 18 Aug 2024 22:35:42 +0800 Subject: [PATCH] refine refresh token flow --- .../com/safeqr/app/gmail/service/GmailService.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/safeqr/app/gmail/service/GmailService.java b/src/main/java/com/safeqr/app/gmail/service/GmailService.java index 1792b81..bda6f3e 100644 --- a/src/main/java/com/safeqr/app/gmail/service/GmailService.java +++ b/src/main/java/com/safeqr/app/gmail/service/GmailService.java @@ -125,13 +125,20 @@ public class GmailService { private Gmail refreshAndGetGmailService(String accessToken, String refreshToken) throws IOException { try { - return getGmailService(accessToken, refreshToken); + Gmail service = getGmailService(accessToken, refreshToken); + service.users().getProfile("me").execute(); + logger.info("Gmail service authenticated with provided access token."); + return service; } catch (GoogleJsonResponseException e) { if (e.getStatusCode() == 401) { - logger.info("Access token expired. Refreshing token..."); + logger.info("Access token expired. Refreshing..."); String newAccessToken = refreshAccessToken(refreshToken); - return getGmailService(newAccessToken, refreshToken); + Gmail service = getGmailService(newAccessToken, refreshToken); + service.users().getProfile("me").execute(); + logger.info("Gmail service authenticated with refreshed token."); + return service; } + logger.error("Failed to authenticate with Gmail API", e); throw e; } }