@@ -37,6 +37,7 @@ interface StoredElawayToken {
37
37
}
38
38
39
39
async function getAuthorizationCode ( page : Page ) : Promise < string | null > {
40
+ console . info ( "Waiting for authorization code from redirect." ) ;
40
41
return new Promise ( ( resolve , reject ) => {
41
42
page . on ( 'response' , async ( response ) => {
42
43
try {
@@ -54,13 +55,15 @@ async function getAuthorizationCode(page: Page): Promise<string | null> {
54
55
}
55
56
}
56
57
} catch ( error ) {
58
+ console . error ( "Error in getAuthorizationCode:" , error . message ) ;
57
59
reject ( error ) ;
58
60
}
59
61
} ) ;
60
62
} ) ;
61
63
}
62
64
63
65
async function exchangeCodeForIdAndAuthToken ( code : string ) : Promise < IdTokenResponse > {
66
+ console . info ( "Exchanging authorization code for access token and ID token." ) ;
64
67
const response = await axios . post ( elawayTokenUrl , {
65
68
grant_type : "authorization_code" ,
66
69
client_id : config . clientId ,
@@ -164,6 +167,8 @@ async function startOauth(): Promise<ElawayTokenResponse> {
164
167
let accessIdResponse : null | IdTokenResponse = null ;
165
168
const authUrl = `${ elawayAuthorizationUrl } ?response_type=code&client_id=${ encodeURIComponent ( config . clientId ) } &redirect_uri=${ encodeURIComponent ( redirectUri ) } &scope=${ encodeURIComponent ( oauthScope ) } &state=${ encodeURIComponent ( state ) } ` ;
166
169
170
+ console . info ( "No valid bearer token found. Starting OAuth flow." ) ;
171
+
167
172
const browser = await puppeteer . launch ( { headless : true , args : [ '--no-sandbox' ] } ) ;
168
173
const page = await browser . newPage ( ) ;
169
174
@@ -211,31 +216,15 @@ async function getValidCredentials(): Promise<StoredElawayToken> {
211
216
212
217
const validBearerToken = storedToken && storedToken . expires_at > Date . now ( ) ;
213
218
214
- // Sjekk om token går ut om mindre enn 5 minutter
215
- // Forleng tokenet
216
-
217
- // const refreshedToken = await refreshAccessToken(storedToken.refresh_token);
218
-
219
-
220
- // if (storedToken && storedToken.expires_at - Date.now() < 5 * 60 * 1000) {
221
- // const refreshedToken = await refreshAccessToken(storedToken.refresh_token);
222
- // if (refreshedToken) {
223
- // saveTokens(refreshedToken);
224
- // }
225
- // }
219
+ // TODO: Implement refresh token
226
220
227
- if ( validBearerToken ) {
228
- console . info ( "Existing bearer token found and is valid." ) ;
229
- return storedToken ;
221
+ if ( ! validBearerToken ) {
222
+ const newToken = await startOauth ( ) ;
223
+ return saveTokens ( newToken ) ;
230
224
}
231
225
232
- console . info ( "No valid bearer token found. Starting OAuth flow." ) ;
233
- const newToken = await startOauth ( ) ;
234
-
235
- if ( ! newToken ) {
236
- throw new Error ( "Could not get valid credentials" ) ;
237
- }
238
- return saveTokens ( newToken ) ;
226
+ console . info ( "Using existing bearer token" ) ;
227
+ return storedToken
239
228
}
240
229
241
230
export { getValidCredentials } ;
0 commit comments