@smg-automotive/auth 6.5.0 → 6.6.0-lkappeler-fix-logout.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.
|
@@ -10,20 +10,25 @@ var getLegacyCookieDomain = function (hostname) {
|
|
|
10
10
|
var base = parts.slice(-2).join('.');
|
|
11
11
|
return ".".concat(base);
|
|
12
12
|
};
|
|
13
|
+
var getOtherDomainHost = function (currentHost) {
|
|
14
|
+
if (currentHost.includes('autoscout24')) {
|
|
15
|
+
return currentHost.replace('autoscout24', 'motoscout24');
|
|
16
|
+
}
|
|
17
|
+
if (currentHost.includes('motoscout24')) {
|
|
18
|
+
return currentHost.replace('motoscout24', 'autoscout24');
|
|
19
|
+
}
|
|
20
|
+
return currentHost;
|
|
21
|
+
};
|
|
13
22
|
var createLogoutHandler = function (_a) {
|
|
14
23
|
var isProxied = _a.isProxied, host = _a.host, protocol = _a.protocol;
|
|
15
24
|
return function (req, res) {
|
|
16
|
-
var _a = auth0.getAuth0Config({ isProxied: isProxied }), languageConfig = _a.languageConfig, authCookieNames = _a.authCookieNames, legacyAccessTokenName = _a.legacyAccessTokenName, legacyRefreshTokenName = _a.legacyRefreshTokenName;
|
|
25
|
+
var _a = auth0.getAuth0Config({ isProxied: isProxied }), languageConfig = _a.languageConfig, authCookieNames = _a.authCookieNames, legacyAccessTokenName = _a.legacyAccessTokenName, legacyRefreshTokenName = _a.legacyRefreshTokenName, logoutEndpoint = _a.logoutEndpoint;
|
|
17
26
|
var handleLogout = getAuth0Instance.getAuth0Instance({ host: host, protocol: protocol, isProxied: isProxied }).handleLogout;
|
|
18
27
|
var specifiedReturnTo = req.query.returnTo;
|
|
19
28
|
var setCookieValues = [];
|
|
20
29
|
var requestCookieNames = Object.keys(req.cookies);
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
return requestCookieName.startsWith(cookieName);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
cookieNamesToDelete.forEach(function (cookieName) {
|
|
30
|
+
var crossDomainLogout = req.query.crossDomain === 'true';
|
|
31
|
+
authCookieNames.forEach(function (cookieName) {
|
|
27
32
|
setCookieValues.push("".concat(cookieName, "=; Max-Age=0; Path=/"));
|
|
28
33
|
});
|
|
29
34
|
var legacyCookieDomain = getLegacyCookieDomain(host);
|
|
@@ -43,6 +48,17 @@ var createLogoutHandler = function (_a) {
|
|
|
43
48
|
if (specifiedReturnTo && specifiedReturnTo.startsWith('/')) {
|
|
44
49
|
returnTo = specifiedReturnTo;
|
|
45
50
|
}
|
|
51
|
+
var otherDomainHost = getOtherDomainHost(host);
|
|
52
|
+
if (!crossDomainLogout && otherDomainHost && otherDomainHost !== host) {
|
|
53
|
+
var currentDomainUrl = "".concat(protocol, "://").concat(host);
|
|
54
|
+
var backToCurrentDomainUrl = new URL(logoutEndpoint, currentDomainUrl);
|
|
55
|
+
backToCurrentDomainUrl.searchParams.set('crossDomain', 'true');
|
|
56
|
+
backToCurrentDomainUrl.searchParams.set('returnTo', returnTo);
|
|
57
|
+
var otherDomainLogoutUrl = new URL(logoutEndpoint, "".concat(protocol, "://").concat(otherDomainHost));
|
|
58
|
+
otherDomainLogoutUrl.searchParams.set('returnTo', backToCurrentDomainUrl.toString());
|
|
59
|
+
res.redirect(302, otherDomainLogoutUrl.toString());
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
46
62
|
return handleLogout(req, res, {
|
|
47
63
|
returnTo: returnTo,
|
|
48
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logout.js","sources":["../../../../../../src/apiRoutes/handlers/creators/logout.ts"],"sourcesContent":[null],"names":["getAuth0Config","getAuth0Instance"],"mappings":";;;;;AAQA,IAAM,qBAAqB,GAAG,UAAC,QAAgB,EAAA;IAC7C,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AACjC,IAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAA,CAAA,MAAA,CAAI,QAAQ,CAAE;AAE3C,IAAA,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACtC,OAAO,GAAA,CAAA,MAAA,CAAI,IAAI,CAAE;AACnB,CAAC;AAEM,IAAM,mBAAmB,GAC9B,UAAC,EAA6B,EAAA;AAA3B,IAAA,IAAA,SAAS,eAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA;IAC5B,OAAA,UAAC,GAAmB,EAAE,GAAoB,EAAA;QAClC,IAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"logout.js","sources":["../../../../../../src/apiRoutes/handlers/creators/logout.ts"],"sourcesContent":[null],"names":["getAuth0Config","getAuth0Instance"],"mappings":"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"}
|
|
@@ -8,20 +8,25 @@ var getLegacyCookieDomain = function (hostname) {
|
|
|
8
8
|
var base = parts.slice(-2).join('.');
|
|
9
9
|
return ".".concat(base);
|
|
10
10
|
};
|
|
11
|
+
var getOtherDomainHost = function (currentHost) {
|
|
12
|
+
if (currentHost.includes('autoscout24')) {
|
|
13
|
+
return currentHost.replace('autoscout24', 'motoscout24');
|
|
14
|
+
}
|
|
15
|
+
if (currentHost.includes('motoscout24')) {
|
|
16
|
+
return currentHost.replace('motoscout24', 'autoscout24');
|
|
17
|
+
}
|
|
18
|
+
return currentHost;
|
|
19
|
+
};
|
|
11
20
|
var createLogoutHandler = function (_a) {
|
|
12
21
|
var isProxied = _a.isProxied, host = _a.host, protocol = _a.protocol;
|
|
13
22
|
return function (req, res) {
|
|
14
|
-
var _a = getAuth0Config({ isProxied: isProxied }), languageConfig = _a.languageConfig, authCookieNames = _a.authCookieNames, legacyAccessTokenName = _a.legacyAccessTokenName, legacyRefreshTokenName = _a.legacyRefreshTokenName;
|
|
23
|
+
var _a = getAuth0Config({ isProxied: isProxied }), languageConfig = _a.languageConfig, authCookieNames = _a.authCookieNames, legacyAccessTokenName = _a.legacyAccessTokenName, legacyRefreshTokenName = _a.legacyRefreshTokenName, logoutEndpoint = _a.logoutEndpoint;
|
|
15
24
|
var handleLogout = getAuth0Instance({ host: host, protocol: protocol, isProxied: isProxied }).handleLogout;
|
|
16
25
|
var specifiedReturnTo = req.query.returnTo;
|
|
17
26
|
var setCookieValues = [];
|
|
18
27
|
var requestCookieNames = Object.keys(req.cookies);
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
return requestCookieName.startsWith(cookieName);
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
cookieNamesToDelete.forEach(function (cookieName) {
|
|
28
|
+
var crossDomainLogout = req.query.crossDomain === 'true';
|
|
29
|
+
authCookieNames.forEach(function (cookieName) {
|
|
25
30
|
setCookieValues.push("".concat(cookieName, "=; Max-Age=0; Path=/"));
|
|
26
31
|
});
|
|
27
32
|
var legacyCookieDomain = getLegacyCookieDomain(host);
|
|
@@ -41,6 +46,17 @@ var createLogoutHandler = function (_a) {
|
|
|
41
46
|
if (specifiedReturnTo && specifiedReturnTo.startsWith('/')) {
|
|
42
47
|
returnTo = specifiedReturnTo;
|
|
43
48
|
}
|
|
49
|
+
var otherDomainHost = getOtherDomainHost(host);
|
|
50
|
+
if (!crossDomainLogout && otherDomainHost && otherDomainHost !== host) {
|
|
51
|
+
var currentDomainUrl = "".concat(protocol, "://").concat(host);
|
|
52
|
+
var backToCurrentDomainUrl = new URL(logoutEndpoint, currentDomainUrl);
|
|
53
|
+
backToCurrentDomainUrl.searchParams.set('crossDomain', 'true');
|
|
54
|
+
backToCurrentDomainUrl.searchParams.set('returnTo', returnTo);
|
|
55
|
+
var otherDomainLogoutUrl = new URL(logoutEndpoint, "".concat(protocol, "://").concat(otherDomainHost));
|
|
56
|
+
otherDomainLogoutUrl.searchParams.set('returnTo', backToCurrentDomainUrl.toString());
|
|
57
|
+
res.redirect(302, otherDomainLogoutUrl.toString());
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
44
60
|
return handleLogout(req, res, {
|
|
45
61
|
returnTo: returnTo,
|
|
46
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logout.js","sources":["../../../../../../src/apiRoutes/handlers/creators/logout.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAQA,IAAM,qBAAqB,GAAG,UAAC,QAAgB,EAAA;IAC7C,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AACjC,IAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAA,CAAA,MAAA,CAAI,QAAQ,CAAE;AAE3C,IAAA,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACtC,OAAO,GAAA,CAAA,MAAA,CAAI,IAAI,CAAE;AACnB,CAAC;AAEM,IAAM,mBAAmB,GAC9B,UAAC,EAA6B,EAAA;AAA3B,IAAA,IAAA,SAAS,eAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA;IAC5B,OAAA,UAAC,GAAmB,EAAE,GAAoB,EAAA;QAClC,IAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"logout.js","sources":["../../../../../../src/apiRoutes/handlers/creators/logout.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAQA,IAAM,qBAAqB,GAAG,UAAC,QAAgB,EAAA;IAC7C,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AACjC,IAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAA,CAAA,MAAA,CAAI,QAAQ,CAAE;AAE3C,IAAA,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACtC,OAAO,GAAA,CAAA,MAAA,CAAI,IAAI,CAAE;AACnB,CAAC;AAED,IAAM,kBAAkB,GAAG,UAAC,WAAmB,EAAA;AAC7C,IAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;QACvC,OAAO,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC;;AAE1D,IAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;QACvC,OAAO,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC;;AAE1D,IAAA,OAAO,WAAW;AACpB,CAAC;AAEM,IAAM,mBAAmB,GAC9B,UAAC,EAA6B,EAAA;AAA3B,IAAA,IAAA,SAAS,eAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA;IAC5B,OAAA,UAAC,GAAmB,EAAE,GAAoB,EAAA;QAClC,IAAA,EAAA,GAMF,cAAc,CAAC,EAAE,SAAS,EAAA,SAAA,EAAE,CAAC,EAL/B,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,qBAAqB,GAAA,EAAA,CAAA,qBAAA,EACrB,sBAAsB,GAAA,EAAA,CAAA,sBAAA,EACtB,cAAc,GAAA,EAAA,CAAA,cACiB;AACzB,QAAA,IAAA,YAAY,GAAK,gBAAgB,CAAC,EAAE,IAAI,EAAA,IAAA,EAAE,QAAQ,EAAA,QAAA,EAAE,SAAS,EAAA,SAAA,EAAE,CAAC,aAApD;AACpB,QAAA,IAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,QAAkB;QACtD,IAAM,eAAe,GAAa,EAAE;QACpC,IAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QACnD,IAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,MAAM;AAE1D,QAAA,eAAe,CAAC,OAAO,CAAC,UAAC,UAAU,EAAA;AACjC,YAAA,eAAe,CAAC,IAAI,CAAC,UAAG,UAAU,EAAA,sBAAA,CAAsB,CAAC;AAC3D,SAAC,CAAC;AAEF,QAAA,IAAM,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC;AACtD,QAAA,IAAM,iBAAiB,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;AACzE,QAAA,IAAM,0BAA0B,GAAG,kBAAkB,CAAC,MAAM,CAC1D,UAAC,iBAAiB,EAAA;AAChB,YAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,UAAC,UAAU,EAAA;AACvC,gBAAA,OAAO,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC;AACjD,aAAC,CAAC;AACJ,SAAC,CACF;AACD,QAAA,0BAA0B,CAAC,OAAO,CAAC,UAAC,UAAU,EAAA;YAC5C,eAAe,CAAC,IAAI,CAClB,EAAA,CAAA,MAAA,CAAG,UAAU,EAAA,+BAAA,CAAA,CAAA,MAAA,CAAgC,kBAAkB,EAAA,GAAA,CAAG,CACnE;AACH,SAAC,CAAC;AAEF,QAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,YAAA,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,eAAe,CAAC;;AAG9C,QAAA,IAAI,QAAQ,GAAG,GAAA,CAAA,MAAA,CAAK,GAAG,CAAC,KAAK,CAAC,MAAmB,IAAI,cAAc,CAAC,OAAO,CAAE;QAC7E,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC1D,QAAQ,GAAG,iBAAiB;;AAG9B,QAAA,IAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC,iBAAiB,IAAI,eAAe,IAAI,eAAe,KAAK,IAAI,EAAE;AACrE,YAAA,IAAM,gBAAgB,GAAG,EAAA,CAAA,MAAA,CAAG,QAAQ,EAAA,KAAA,CAAA,CAAA,MAAA,CAAM,IAAI,CAAE;YAEhD,IAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC;YACxE,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC;YAC9D,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;AAE7D,YAAA,IAAM,oBAAoB,GAAG,IAAI,GAAG,CAClC,cAAc,EACd,EAAA,CAAA,MAAA,CAAG,QAAQ,EAAA,KAAA,CAAA,CAAA,MAAA,CAAM,eAAe,CAAE,CACnC;AACD,YAAA,oBAAoB,CAAC,YAAY,CAAC,GAAG,CACnC,UAAU,EACV,sBAAsB,CAAC,QAAQ,EAAE,CAClC;YAED,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC,QAAQ,EAAE,CAAC;YAClD;;AAGF,QAAA,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE;AAC5B,YAAA,QAAQ,EAAA,QAAA;AACT,SAAA,CAAC;KACH;AAlED;;;;"}
|