|
|
|
const { oAuth2Client } = require('../config/googleOAuth'); |
|
|
|
|
|
let userTokens = {}; |
|
|
|
|
|
async function checkAndRefreshAccessToken() { |
|
userTokens = {}; |
|
if (process.env.ACCESS_TOKEN && process.env.REFRESH_TOKEN) { |
|
userTokens = { |
|
access_token: process.env.ACCESS_TOKEN, |
|
refresh_token: process.env.REFRESH_TOKEN, |
|
}; |
|
oAuth2Client.setCredentials(userTokens); |
|
console.log('Using tokens from .env file'); |
|
} else { |
|
console.log('No tokens found in .env file. Please authenticate.'); |
|
} |
|
|
|
|
|
if (oAuth2Client.isTokenExpiring()) { |
|
try { |
|
|
|
const response = await oAuth2Client.refreshAccessToken(); |
|
const newTokens = response.credentials; |
|
oAuth2Client.setCredentials(newTokens); |
|
userTokens = newTokens; |
|
|
|
process.env.ACCESS_TOKEN = newTokens.access_token |
|
process.env.REFRESH_TOKEN = newTokens.refresh_token |
|
|
|
console.log('Access token refreshed.'); |
|
} catch (error) { |
|
console.error('Error refreshing access token:', error); |
|
} |
|
} |
|
return userTokens |
|
} |
|
|
|
module.exports = { checkAndRefreshAccessToken }; |