@aws-sdk/token-providers 3.1112.0 → 3.1113.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cjs/index.js +8 -4
- package/dist-es/fromSso.js +8 -4
- package/package.json +1 -1
package/dist-cjs/index.js
CHANGED
|
@@ -61,7 +61,7 @@ const writeSSOTokenToFile = (id, ssoToken) => {
|
|
|
61
61
|
return writeFile(tokenFilepath, tokenString);
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
-
const
|
|
64
|
+
const lastRefreshAttemptTimes = new Map();
|
|
65
65
|
const fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {
|
|
66
66
|
init.logger?.debug("@aws-sdk/token-providers - fromSso");
|
|
67
67
|
const profiles = await parseKnownFiles(init);
|
|
@@ -98,11 +98,15 @@ const fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {
|
|
|
98
98
|
validateTokenKey("accessToken", ssoToken.accessToken);
|
|
99
99
|
validateTokenKey("expiresAt", ssoToken.expiresAt);
|
|
100
100
|
const { accessToken, expiresAt } = ssoToken;
|
|
101
|
-
const existingToken = {
|
|
101
|
+
const existingToken = {
|
|
102
|
+
token: accessToken,
|
|
103
|
+
expiration: new Date(expiresAt),
|
|
104
|
+
};
|
|
102
105
|
if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {
|
|
103
106
|
return existingToken;
|
|
104
107
|
}
|
|
105
|
-
|
|
108
|
+
const lastRefreshAttemptTime = lastRefreshAttemptTimes.get(ssoSessionName) ?? 0;
|
|
109
|
+
if (Date.now() - lastRefreshAttemptTime < 30 * 1000) {
|
|
106
110
|
validateTokenExpiry(existingToken);
|
|
107
111
|
return existingToken;
|
|
108
112
|
}
|
|
@@ -110,7 +114,7 @@ const fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {
|
|
|
110
114
|
validateTokenKey("clientSecret", ssoToken.clientSecret, true);
|
|
111
115
|
validateTokenKey("refreshToken", ssoToken.refreshToken, true);
|
|
112
116
|
try {
|
|
113
|
-
|
|
117
|
+
lastRefreshAttemptTimes.set(ssoSessionName, Date.now());
|
|
114
118
|
const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init, callerClientConfig);
|
|
115
119
|
validateTokenKey("accessToken", newSsoOidcToken.accessToken);
|
|
116
120
|
validateTokenKey("expiresIn", newSsoOidcToken.expiresIn);
|
package/dist-es/fromSso.js
CHANGED
|
@@ -4,7 +4,7 @@ import { getNewSsoOidcToken } from "./getNewSsoOidcToken";
|
|
|
4
4
|
import { validateTokenExpiry } from "./validateTokenExpiry";
|
|
5
5
|
import { validateTokenKey } from "./validateTokenKey";
|
|
6
6
|
import { writeSSOTokenToFile } from "./writeSSOTokenToFile";
|
|
7
|
-
const
|
|
7
|
+
const lastRefreshAttemptTimes = new Map();
|
|
8
8
|
export const fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {
|
|
9
9
|
init.logger?.debug("@aws-sdk/token-providers - fromSso");
|
|
10
10
|
const profiles = await parseKnownFiles(init);
|
|
@@ -41,11 +41,15 @@ export const fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {
|
|
|
41
41
|
validateTokenKey("accessToken", ssoToken.accessToken);
|
|
42
42
|
validateTokenKey("expiresAt", ssoToken.expiresAt);
|
|
43
43
|
const { accessToken, expiresAt } = ssoToken;
|
|
44
|
-
const existingToken = {
|
|
44
|
+
const existingToken = {
|
|
45
|
+
token: accessToken,
|
|
46
|
+
expiration: new Date(expiresAt),
|
|
47
|
+
};
|
|
45
48
|
if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {
|
|
46
49
|
return existingToken;
|
|
47
50
|
}
|
|
48
|
-
|
|
51
|
+
const lastRefreshAttemptTime = lastRefreshAttemptTimes.get(ssoSessionName) ?? 0;
|
|
52
|
+
if (Date.now() - lastRefreshAttemptTime < 30 * 1000) {
|
|
49
53
|
validateTokenExpiry(existingToken);
|
|
50
54
|
return existingToken;
|
|
51
55
|
}
|
|
@@ -53,7 +57,7 @@ export const fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {
|
|
|
53
57
|
validateTokenKey("clientSecret", ssoToken.clientSecret, true);
|
|
54
58
|
validateTokenKey("refreshToken", ssoToken.refreshToken, true);
|
|
55
59
|
try {
|
|
56
|
-
|
|
60
|
+
lastRefreshAttemptTimes.set(ssoSessionName, Date.now());
|
|
57
61
|
const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init, callerClientConfig);
|
|
58
62
|
validateTokenKey("accessToken", newSsoOidcToken.accessToken);
|
|
59
63
|
validateTokenKey("expiresIn", newSsoOidcToken.expiresIn);
|