@muze-nl/metro-oidc 0.5.0 → 0.5.1
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/browser.js +19 -13
- package/dist/browser.js.map +2 -2
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +3 -3
- package/package.json +2 -2
package/dist/browser.js
CHANGED
|
@@ -877,19 +877,22 @@
|
|
|
877
877
|
localState = {
|
|
878
878
|
get: () => localStorage.getItem("metro/state:" + site),
|
|
879
879
|
set: (value) => localStorage.setItem("metro/state:" + site, value),
|
|
880
|
-
has: () => localStorage.getItem("metro/state:" + site) !== null
|
|
880
|
+
has: () => localStorage.getItem("metro/state:" + site) !== null,
|
|
881
|
+
delete: () => localStorage.remoteItem("metro/state:" + site)
|
|
881
882
|
};
|
|
882
883
|
localTokens = {
|
|
883
884
|
get: (name) => JSON.parse(localStorage.getItem(site + ":" + name)),
|
|
884
885
|
set: (name, value) => localStorage.setItem(site + ":" + name, JSON.stringify(value)),
|
|
885
|
-
has: (name) => localStorage.getItem(site + ":" + name) !== null
|
|
886
|
+
has: (name) => localStorage.getItem(site + ":" + name) !== null,
|
|
887
|
+
delete: (name) => localStorage.removeItem(site + ":" + name)
|
|
886
888
|
};
|
|
887
889
|
} else {
|
|
888
890
|
let stateMap = /* @__PURE__ */ new Map();
|
|
889
891
|
localState = {
|
|
890
892
|
get: () => stateMap.get("metro/state:" + site),
|
|
891
893
|
set: (value) => stateMap.set("metro/state:" + site, value),
|
|
892
|
-
has: () => stateMap.has("metro/state:" + site)
|
|
894
|
+
has: () => stateMap.has("metro/state:" + site),
|
|
895
|
+
delete: () => stateMap.delete("metro/state:" + site)
|
|
893
896
|
};
|
|
894
897
|
localTokens = /* @__PURE__ */ new Map();
|
|
895
898
|
}
|
|
@@ -981,8 +984,10 @@
|
|
|
981
984
|
};
|
|
982
985
|
async function oauth2authorized(req, next) {
|
|
983
986
|
getTokensFromLocation();
|
|
984
|
-
|
|
985
|
-
|
|
987
|
+
const accessToken = options.tokens.get("access_token");
|
|
988
|
+
const refreshToken = options.tokens.get("refresh_token");
|
|
989
|
+
const tokenIsExpired = isExpired(accessToken);
|
|
990
|
+
if (!accessToken || tokenIsExpired && !refreshToken) {
|
|
986
991
|
try {
|
|
987
992
|
let token = await fetchAccessToken();
|
|
988
993
|
if (!token) {
|
|
@@ -992,9 +997,9 @@
|
|
|
992
997
|
throw e;
|
|
993
998
|
}
|
|
994
999
|
return oauth2authorized(req, next);
|
|
995
|
-
} else if (
|
|
1000
|
+
} else if (tokenIsExpired && refreshToken) {
|
|
996
1001
|
try {
|
|
997
|
-
let token = await
|
|
1002
|
+
let token = await refreshAccessToken();
|
|
998
1003
|
if (!token) {
|
|
999
1004
|
return response("false");
|
|
1000
1005
|
}
|
|
@@ -1070,9 +1075,10 @@
|
|
|
1070
1075
|
};
|
|
1071
1076
|
options.tokens.set("refresh_token", token);
|
|
1072
1077
|
}
|
|
1078
|
+
options.tokens.delete("authorization_code");
|
|
1073
1079
|
return data;
|
|
1074
1080
|
}
|
|
1075
|
-
async function
|
|
1081
|
+
async function refreshAccessToken() {
|
|
1076
1082
|
let refreshTokenReq = getAccessTokenRequest("refresh_token");
|
|
1077
1083
|
let response2 = await options.client.post(refreshTokenReq);
|
|
1078
1084
|
if (!response2.ok) {
|
|
@@ -1149,20 +1155,20 @@
|
|
|
1149
1155
|
grant_type: grant_type || oauth2.grant_type,
|
|
1150
1156
|
client_id: oauth2.client_id
|
|
1151
1157
|
};
|
|
1152
|
-
const code_verifier = options.tokens.get("code_verifier");
|
|
1153
|
-
if (code_verifier) {
|
|
1154
|
-
params2.code_verifier = code_verifier;
|
|
1155
|
-
}
|
|
1156
1158
|
if (oauth2.client_secret) {
|
|
1157
1159
|
params2.client_secret = oauth2.client_secret;
|
|
1158
1160
|
}
|
|
1159
1161
|
if (oauth2.scope) {
|
|
1160
1162
|
params2.scope = oauth2.scope;
|
|
1161
1163
|
}
|
|
1162
|
-
switch (
|
|
1164
|
+
switch (params2.grant_type) {
|
|
1163
1165
|
case "authorization_code":
|
|
1164
1166
|
params2.redirect_uri = oauth2.redirect_uri;
|
|
1165
1167
|
params2.code = options.tokens.get("authorization_code");
|
|
1168
|
+
const code_verifier = options.tokens.get("code_verifier");
|
|
1169
|
+
if (code_verifier) {
|
|
1170
|
+
params2.code_verifier = code_verifier;
|
|
1171
|
+
}
|
|
1166
1172
|
break;
|
|
1167
1173
|
case "client_credentials":
|
|
1168
1174
|
break;
|