@smg-automotive/auth 8.2.3-port-error-handling.1 → 8.2.3
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.
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var server = require('next/server');
|
|
4
4
|
var debug = require('debug');
|
|
5
|
-
var authLinks = require('../../lib/authLinks.js');
|
|
6
5
|
var auth0 = require('../../config/auth0.js');
|
|
7
6
|
var getAuth0Instance = require('../getAuth0Instance.js');
|
|
8
7
|
var token = require('./token.js');
|
|
@@ -30,7 +29,7 @@ const isAuthRoute = (pathname, auth0Config) => {
|
|
|
30
29
|
};
|
|
31
30
|
const authMiddleware = async ({ request, isProtectedRoute, language, host, protocol, onError, brand, }) => {
|
|
32
31
|
const requestId$1 = requestId.getOrCreateRequestId(request);
|
|
33
|
-
const { pathname
|
|
32
|
+
const { pathname } = request.nextUrl;
|
|
34
33
|
log('Processing request', {
|
|
35
34
|
requestId: requestId$1,
|
|
36
35
|
pathname,
|
|
@@ -43,120 +42,88 @@ const authMiddleware = async ({ request, isProtectedRoute, language, host, proto
|
|
|
43
42
|
protocol,
|
|
44
43
|
});
|
|
45
44
|
const auth0Config = auth0.getAuth0Config();
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return crossDomainLogoutResult;
|
|
59
|
-
}
|
|
60
|
-
login.addLoginParams({
|
|
61
|
-
request,
|
|
62
|
-
auth0Config,
|
|
63
|
-
});
|
|
64
|
-
log('Calling Auth0 middleware', { requestId: requestId$1 });
|
|
65
|
-
const authResponse = await auth0Instance.middleware(request);
|
|
66
|
-
authResponse.headers.set(requestId.requestIdHeader, requestId$1);
|
|
67
|
-
log('Auth0 middleware completed', {
|
|
68
|
-
requestId: requestId$1,
|
|
69
|
-
status: authResponse.status,
|
|
70
|
-
});
|
|
71
|
-
logout.deleteRelatedSessionCookies({
|
|
72
|
-
host,
|
|
73
|
-
request,
|
|
74
|
-
response: authResponse,
|
|
75
|
-
auth0Config,
|
|
76
|
-
});
|
|
77
|
-
const accessTokenRequestResult = await token.handleAccessTokenRequest({
|
|
78
|
-
request,
|
|
79
|
-
response: authResponse,
|
|
80
|
-
auth0Instance,
|
|
81
|
-
auth0Config,
|
|
82
|
-
onError,
|
|
83
|
-
});
|
|
84
|
-
if (accessTokenRequestResult) {
|
|
85
|
-
log('Access token request handled', { requestId: requestId$1 });
|
|
86
|
-
return accessTokenRequestResult;
|
|
87
|
-
}
|
|
88
|
-
const handleUserProfileResult = await profile.handleUserProfile({
|
|
89
|
-
request,
|
|
90
|
-
response: authResponse,
|
|
91
|
-
auth0Instance,
|
|
92
|
-
auth0Config,
|
|
93
|
-
brand,
|
|
94
|
-
});
|
|
95
|
-
if (handleUserProfileResult) {
|
|
96
|
-
log('User profile request handled', { requestId: requestId$1 });
|
|
97
|
-
return handleUserProfileResult;
|
|
98
|
-
}
|
|
99
|
-
if (isAuthRoute(pathname, auth0Config) || isAuthErrorRoute) {
|
|
100
|
-
log('Auth route, returning response', { requestId: requestId$1 });
|
|
101
|
-
return authResponse;
|
|
102
|
-
}
|
|
103
|
-
const isProtected = !isAuthErrorRoute && isProtectedRoute(pathname);
|
|
104
|
-
log('Route protection check', { requestId: requestId$1, pathname, isProtected });
|
|
105
|
-
const protectRouteResult = await protectRoute.protectRoute({
|
|
106
|
-
isProtected,
|
|
107
|
-
auth0Instance,
|
|
108
|
-
auth0Config,
|
|
109
|
-
language,
|
|
110
|
-
request,
|
|
111
|
-
response: authResponse,
|
|
112
|
-
onError,
|
|
113
|
-
});
|
|
114
|
-
if (protectRouteResult) {
|
|
115
|
-
log('Route protection handled', {
|
|
116
|
-
requestId: requestId$1,
|
|
117
|
-
redirected: protectRouteResult.status === 307,
|
|
118
|
-
});
|
|
119
|
-
return protectRouteResult;
|
|
120
|
-
}
|
|
121
|
-
log('Request completed, combining headers', { requestId: requestId$1 });
|
|
122
|
-
const finalResponse = combineHeaders.combineHeaders({
|
|
123
|
-
middlewareResponse: server.NextResponse.next({
|
|
124
|
-
request: {
|
|
125
|
-
headers: request.headers,
|
|
126
|
-
},
|
|
127
|
-
}),
|
|
128
|
-
authResponse,
|
|
129
|
-
});
|
|
130
|
-
finalResponse.headers.set(requestId.requestIdHeader, requestId$1);
|
|
131
|
-
return finalResponse;
|
|
45
|
+
const isAuthErrorRoute = pathname.endsWith(auth0Config.globalAuthErrorPath);
|
|
46
|
+
log('Auth route check', { requestId: requestId$1, pathname, isAuthErrorRoute });
|
|
47
|
+
const crossDomainLogoutResult = logout.handleCrossDomainLogout({
|
|
48
|
+
host,
|
|
49
|
+
protocol,
|
|
50
|
+
request,
|
|
51
|
+
auth0Config,
|
|
52
|
+
});
|
|
53
|
+
if (crossDomainLogoutResult) {
|
|
54
|
+
crossDomainLogoutResult.headers.set(requestId.requestIdHeader, requestId$1);
|
|
55
|
+
log('Cross-domain logout detected, redirecting', { requestId: requestId$1 });
|
|
56
|
+
return crossDomainLogoutResult;
|
|
132
57
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
58
|
+
login.addLoginParams({
|
|
59
|
+
request,
|
|
60
|
+
auth0Config,
|
|
61
|
+
});
|
|
62
|
+
log('Calling Auth0 middleware', { requestId: requestId$1 });
|
|
63
|
+
const authResponse = await auth0Instance.middleware(request);
|
|
64
|
+
authResponse.headers.set(requestId.requestIdHeader, requestId$1);
|
|
65
|
+
log('Auth0 middleware completed', { requestId: requestId$1, status: authResponse.status });
|
|
66
|
+
logout.deleteRelatedSessionCookies({
|
|
67
|
+
host,
|
|
68
|
+
request,
|
|
69
|
+
response: authResponse,
|
|
70
|
+
auth0Config,
|
|
71
|
+
});
|
|
72
|
+
const accessTokenRequestResult = await token.handleAccessTokenRequest({
|
|
73
|
+
request,
|
|
74
|
+
response: authResponse,
|
|
75
|
+
auth0Instance,
|
|
76
|
+
auth0Config,
|
|
77
|
+
onError,
|
|
78
|
+
});
|
|
79
|
+
if (accessTokenRequestResult) {
|
|
80
|
+
log('Access token request handled', { requestId: requestId$1 });
|
|
81
|
+
return accessTokenRequestResult;
|
|
82
|
+
}
|
|
83
|
+
const handleUserProfileResult = await profile.handleUserProfile({
|
|
84
|
+
request,
|
|
85
|
+
response: authResponse,
|
|
86
|
+
auth0Instance,
|
|
87
|
+
auth0Config,
|
|
88
|
+
brand,
|
|
89
|
+
});
|
|
90
|
+
if (handleUserProfileResult) {
|
|
91
|
+
log('User profile request handled', { requestId: requestId$1 });
|
|
92
|
+
return handleUserProfileResult;
|
|
93
|
+
}
|
|
94
|
+
if (isAuthRoute(pathname, auth0Config) || isAuthErrorRoute) {
|
|
95
|
+
log('Auth route, returning response', { requestId: requestId$1 });
|
|
96
|
+
return authResponse;
|
|
97
|
+
}
|
|
98
|
+
const isProtected = !isAuthErrorRoute && isProtectedRoute(pathname);
|
|
99
|
+
log('Route protection check', { requestId: requestId$1, pathname, isProtected });
|
|
100
|
+
const protectRouteResult = await protectRoute.protectRoute({
|
|
101
|
+
isProtected,
|
|
102
|
+
auth0Instance,
|
|
103
|
+
auth0Config,
|
|
104
|
+
language,
|
|
105
|
+
request,
|
|
106
|
+
response: authResponse,
|
|
107
|
+
onError,
|
|
108
|
+
});
|
|
109
|
+
if (protectRouteResult) {
|
|
110
|
+
log('Route protection handled', {
|
|
111
|
+
requestId: requestId$1,
|
|
112
|
+
redirected: protectRouteResult.status === 307,
|
|
157
113
|
});
|
|
158
|
-
return
|
|
114
|
+
return protectRouteResult;
|
|
159
115
|
}
|
|
116
|
+
log('Request completed, combining headers', { requestId: requestId$1 });
|
|
117
|
+
const finalResponse = combineHeaders.combineHeaders({
|
|
118
|
+
middlewareResponse: server.NextResponse.next({
|
|
119
|
+
request: {
|
|
120
|
+
headers: request.headers,
|
|
121
|
+
},
|
|
122
|
+
}),
|
|
123
|
+
authResponse,
|
|
124
|
+
});
|
|
125
|
+
finalResponse.headers.set(requestId.requestIdHeader, requestId$1);
|
|
126
|
+
return finalResponse;
|
|
160
127
|
};
|
|
161
128
|
|
|
162
129
|
exports.authMiddleware = authMiddleware;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/server/middleware/index.ts"],"sourcesContent":[null],"names":["debug","requestId","getOrCreateRequestId","getAuth0Instance","getAuth0Config","handleCrossDomainLogout","requestIdHeader","addLoginParams","deleteRelatedSessionCookies","handleAccessTokenRequest","handleUserProfile","protectRoute","combineHeaders","NextResponse"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/server/middleware/index.ts"],"sourcesContent":[null],"names":["debug","requestId","getOrCreateRequestId","getAuth0Instance","getAuth0Config","handleCrossDomainLogout","requestIdHeader","addLoginParams","deleteRelatedSessionCookies","handleAccessTokenRequest","handleUserProfile","protectRoute","combineHeaders","NextResponse"],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { NextResponse } from 'next/server';
|
|
2
2
|
import debug from 'debug';
|
|
3
|
-
import { getLoginLink } from '../../lib/authLinks.js';
|
|
4
3
|
import { getAuth0Config } from '../../config/auth0.js';
|
|
5
4
|
import { getAuth0Instance } from '../getAuth0Instance.js';
|
|
6
5
|
import { handleAccessTokenRequest } from './token.js';
|
|
@@ -24,7 +23,7 @@ const isAuthRoute = (pathname, auth0Config) => {
|
|
|
24
23
|
};
|
|
25
24
|
const authMiddleware = async ({ request, isProtectedRoute, language, host, protocol, onError, brand, }) => {
|
|
26
25
|
const requestId = getOrCreateRequestId(request);
|
|
27
|
-
const { pathname
|
|
26
|
+
const { pathname } = request.nextUrl;
|
|
28
27
|
log('Processing request', {
|
|
29
28
|
requestId,
|
|
30
29
|
pathname,
|
|
@@ -37,120 +36,88 @@ const authMiddleware = async ({ request, isProtectedRoute, language, host, proto
|
|
|
37
36
|
protocol,
|
|
38
37
|
});
|
|
39
38
|
const auth0Config = getAuth0Config();
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return crossDomainLogoutResult;
|
|
53
|
-
}
|
|
54
|
-
addLoginParams({
|
|
55
|
-
request,
|
|
56
|
-
auth0Config,
|
|
57
|
-
});
|
|
58
|
-
log('Calling Auth0 middleware', { requestId });
|
|
59
|
-
const authResponse = await auth0Instance.middleware(request);
|
|
60
|
-
authResponse.headers.set(requestIdHeader, requestId);
|
|
61
|
-
log('Auth0 middleware completed', {
|
|
62
|
-
requestId,
|
|
63
|
-
status: authResponse.status,
|
|
64
|
-
});
|
|
65
|
-
deleteRelatedSessionCookies({
|
|
66
|
-
host,
|
|
67
|
-
request,
|
|
68
|
-
response: authResponse,
|
|
69
|
-
auth0Config,
|
|
70
|
-
});
|
|
71
|
-
const accessTokenRequestResult = await handleAccessTokenRequest({
|
|
72
|
-
request,
|
|
73
|
-
response: authResponse,
|
|
74
|
-
auth0Instance,
|
|
75
|
-
auth0Config,
|
|
76
|
-
onError,
|
|
77
|
-
});
|
|
78
|
-
if (accessTokenRequestResult) {
|
|
79
|
-
log('Access token request handled', { requestId });
|
|
80
|
-
return accessTokenRequestResult;
|
|
81
|
-
}
|
|
82
|
-
const handleUserProfileResult = await handleUserProfile({
|
|
83
|
-
request,
|
|
84
|
-
response: authResponse,
|
|
85
|
-
auth0Instance,
|
|
86
|
-
auth0Config,
|
|
87
|
-
brand,
|
|
88
|
-
});
|
|
89
|
-
if (handleUserProfileResult) {
|
|
90
|
-
log('User profile request handled', { requestId });
|
|
91
|
-
return handleUserProfileResult;
|
|
92
|
-
}
|
|
93
|
-
if (isAuthRoute(pathname, auth0Config) || isAuthErrorRoute) {
|
|
94
|
-
log('Auth route, returning response', { requestId });
|
|
95
|
-
return authResponse;
|
|
96
|
-
}
|
|
97
|
-
const isProtected = !isAuthErrorRoute && isProtectedRoute(pathname);
|
|
98
|
-
log('Route protection check', { requestId, pathname, isProtected });
|
|
99
|
-
const protectRouteResult = await protectRoute({
|
|
100
|
-
isProtected,
|
|
101
|
-
auth0Instance,
|
|
102
|
-
auth0Config,
|
|
103
|
-
language,
|
|
104
|
-
request,
|
|
105
|
-
response: authResponse,
|
|
106
|
-
onError,
|
|
107
|
-
});
|
|
108
|
-
if (protectRouteResult) {
|
|
109
|
-
log('Route protection handled', {
|
|
110
|
-
requestId,
|
|
111
|
-
redirected: protectRouteResult.status === 307,
|
|
112
|
-
});
|
|
113
|
-
return protectRouteResult;
|
|
114
|
-
}
|
|
115
|
-
log('Request completed, combining headers', { requestId });
|
|
116
|
-
const finalResponse = combineHeaders({
|
|
117
|
-
middlewareResponse: NextResponse.next({
|
|
118
|
-
request: {
|
|
119
|
-
headers: request.headers,
|
|
120
|
-
},
|
|
121
|
-
}),
|
|
122
|
-
authResponse,
|
|
123
|
-
});
|
|
124
|
-
finalResponse.headers.set(requestIdHeader, requestId);
|
|
125
|
-
return finalResponse;
|
|
39
|
+
const isAuthErrorRoute = pathname.endsWith(auth0Config.globalAuthErrorPath);
|
|
40
|
+
log('Auth route check', { requestId, pathname, isAuthErrorRoute });
|
|
41
|
+
const crossDomainLogoutResult = handleCrossDomainLogout({
|
|
42
|
+
host,
|
|
43
|
+
protocol,
|
|
44
|
+
request,
|
|
45
|
+
auth0Config,
|
|
46
|
+
});
|
|
47
|
+
if (crossDomainLogoutResult) {
|
|
48
|
+
crossDomainLogoutResult.headers.set(requestIdHeader, requestId);
|
|
49
|
+
log('Cross-domain logout detected, redirecting', { requestId });
|
|
50
|
+
return crossDomainLogoutResult;
|
|
126
51
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
52
|
+
addLoginParams({
|
|
53
|
+
request,
|
|
54
|
+
auth0Config,
|
|
55
|
+
});
|
|
56
|
+
log('Calling Auth0 middleware', { requestId });
|
|
57
|
+
const authResponse = await auth0Instance.middleware(request);
|
|
58
|
+
authResponse.headers.set(requestIdHeader, requestId);
|
|
59
|
+
log('Auth0 middleware completed', { requestId, status: authResponse.status });
|
|
60
|
+
deleteRelatedSessionCookies({
|
|
61
|
+
host,
|
|
62
|
+
request,
|
|
63
|
+
response: authResponse,
|
|
64
|
+
auth0Config,
|
|
65
|
+
});
|
|
66
|
+
const accessTokenRequestResult = await handleAccessTokenRequest({
|
|
67
|
+
request,
|
|
68
|
+
response: authResponse,
|
|
69
|
+
auth0Instance,
|
|
70
|
+
auth0Config,
|
|
71
|
+
onError,
|
|
72
|
+
});
|
|
73
|
+
if (accessTokenRequestResult) {
|
|
74
|
+
log('Access token request handled', { requestId });
|
|
75
|
+
return accessTokenRequestResult;
|
|
76
|
+
}
|
|
77
|
+
const handleUserProfileResult = await handleUserProfile({
|
|
78
|
+
request,
|
|
79
|
+
response: authResponse,
|
|
80
|
+
auth0Instance,
|
|
81
|
+
auth0Config,
|
|
82
|
+
brand,
|
|
83
|
+
});
|
|
84
|
+
if (handleUserProfileResult) {
|
|
85
|
+
log('User profile request handled', { requestId });
|
|
86
|
+
return handleUserProfileResult;
|
|
87
|
+
}
|
|
88
|
+
if (isAuthRoute(pathname, auth0Config) || isAuthErrorRoute) {
|
|
89
|
+
log('Auth route, returning response', { requestId });
|
|
90
|
+
return authResponse;
|
|
91
|
+
}
|
|
92
|
+
const isProtected = !isAuthErrorRoute && isProtectedRoute(pathname);
|
|
93
|
+
log('Route protection check', { requestId, pathname, isProtected });
|
|
94
|
+
const protectRouteResult = await protectRoute({
|
|
95
|
+
isProtected,
|
|
96
|
+
auth0Instance,
|
|
97
|
+
auth0Config,
|
|
98
|
+
language,
|
|
99
|
+
request,
|
|
100
|
+
response: authResponse,
|
|
101
|
+
onError,
|
|
102
|
+
});
|
|
103
|
+
if (protectRouteResult) {
|
|
104
|
+
log('Route protection handled', {
|
|
105
|
+
requestId,
|
|
106
|
+
redirected: protectRouteResult.status === 307,
|
|
151
107
|
});
|
|
152
|
-
return
|
|
108
|
+
return protectRouteResult;
|
|
153
109
|
}
|
|
110
|
+
log('Request completed, combining headers', { requestId });
|
|
111
|
+
const finalResponse = combineHeaders({
|
|
112
|
+
middlewareResponse: NextResponse.next({
|
|
113
|
+
request: {
|
|
114
|
+
headers: request.headers,
|
|
115
|
+
},
|
|
116
|
+
}),
|
|
117
|
+
authResponse,
|
|
118
|
+
});
|
|
119
|
+
finalResponse.headers.set(requestIdHeader, requestId);
|
|
120
|
+
return finalResponse;
|
|
154
121
|
};
|
|
155
122
|
|
|
156
123
|
export { authMiddleware };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/server/middleware/index.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/server/middleware/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smg-automotive/auth",
|
|
3
|
-
"version": "8.2.3
|
|
3
|
+
"version": "8.2.3",
|
|
4
4
|
"description": "SMG Automotive auth package",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -90,11 +90,11 @@
|
|
|
90
90
|
"whatwg-fetch": "3.6.20"
|
|
91
91
|
},
|
|
92
92
|
"dependencies": {
|
|
93
|
-
"@auth0/nextjs-auth0": "4.
|
|
93
|
+
"@auth0/nextjs-auth0": "4.12.1",
|
|
94
94
|
"@smg-automotive/api-client-pkg": "4.5.0",
|
|
95
95
|
"@smg-automotive/i18n-pkg": "2.0.0",
|
|
96
96
|
"debug": "4.4.3",
|
|
97
|
-
"jose": "6.1.
|
|
97
|
+
"jose": "6.1.1",
|
|
98
98
|
"redis": "5.9.0"
|
|
99
99
|
},
|
|
100
100
|
"peerDependencies": {
|