Skip to content

Commit 6dfa7df

Browse files
Merge pull request #109 from osu-mist/feature/CO-2115-disable-access-token-cache
CO-2115 Cache token and expiration time separately
2 parents af5095e + cd0c0e9 commit 6dfa7df

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

src/db/http/onbase-dao.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,12 @@ const onbaseDocumentsUrl = `${baseUri}/app/${apiServer}/onbase/core/documents`;
2424
const onbaseDocumentTypesUrl = `${baseUri}/app/${apiServer}/onbase/core/document-types`;
2525
const onbaseKeywordTypesUrl = `${baseUri}/app/${apiServer}/onbase/core/keyword-types`;
2626

27-
let accessToken;
28-
let expireTimeStamp;
27+
const tokenTable = {};
28+
_.forEach(
29+
_.keys(onbaseProfiles), (onbaseProfile) => {
30+
tokenTable[onbaseProfile] = { accessToken: undefined, expireTimeStamp: undefined };
31+
},
32+
);
2933

3034
/**
3135
* Get FB_LB cookie token from response headers
@@ -48,8 +52,11 @@ const getFbLbCookie = (res) => {
4852
const getAccessToken = async (onbaseProfile) => {
4953
try {
5054
if (
51-
accessToken === undefined
52-
|| (expireTimeStamp !== undefined && moment().isAfter(expireTimeStamp))
55+
tokenTable[onbaseProfile].accessToken === undefined
56+
|| (
57+
tokenTable[onbaseProfile].expireTimeStamp !== undefined
58+
&& moment().isAfter(tokenTable[onbaseProfile].expireTimeStamp)
59+
)
5360
) {
5461
const { username, password } = onbaseProfiles[onbaseProfile];
5562

@@ -71,12 +78,12 @@ const getAccessToken = async (onbaseProfile) => {
7178
};
7279

7380
const res = await axios(reqConfig);
74-
accessToken = res.data.access_token;
81+
tokenTable[onbaseProfile].accessToken = res.data.access_token;
7582
// access token expire in an hour. Set up an expire date when request a new token.
76-
expireTimeStamp = moment().add(55, 'minutes');
77-
return [accessToken, getFbLbCookie(res)];
83+
tokenTable[onbaseProfile].expireTimeStamp = moment().add(55, 'minutes');
84+
return [tokenTable[onbaseProfile].accessToken, getFbLbCookie(res)];
7885
}
79-
return [accessToken];
86+
return [tokenTable[onbaseProfile].accessToken];
8087
} catch (err) {
8188
if (err.response && err.response.status !== 200) {
8289
logger.error(err.response.data.error);

0 commit comments

Comments
 (0)