@smg-automotive/auth 8.2.5 → 8.2.6
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,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var server = require('next/server');
|
|
4
4
|
var debug = require('debug');
|
|
5
|
+
var authLinks = require('../../lib/authLinks.js');
|
|
5
6
|
var auth0 = require('../../config/auth0.js');
|
|
6
7
|
var getAuth0Instance = require('../getAuth0Instance.js');
|
|
7
8
|
var token = require('./token.js');
|
|
@@ -29,7 +30,7 @@ const isAuthRoute = (pathname, auth0Config) => {
|
|
|
29
30
|
};
|
|
30
31
|
const authMiddleware = async ({ request, isProtectedRoute, language, host, protocol, onError, brand, }) => {
|
|
31
32
|
const requestId$1 = requestId.getOrCreateRequestId(request);
|
|
32
|
-
const { pathname } = request.nextUrl;
|
|
33
|
+
const { pathname, search, origin } = request.nextUrl;
|
|
33
34
|
log('Processing request', {
|
|
34
35
|
requestId: requestId$1,
|
|
35
36
|
pathname,
|
|
@@ -59,19 +60,9 @@ const authMiddleware = async ({ request, isProtectedRoute, language, host, proto
|
|
|
59
60
|
request,
|
|
60
61
|
auth0Config,
|
|
61
62
|
});
|
|
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
63
|
const accessTokenRequestResult = await token.handleAccessTokenRequest({
|
|
73
64
|
request,
|
|
74
|
-
response:
|
|
65
|
+
response: server.NextResponse.next(),
|
|
75
66
|
auth0Instance,
|
|
76
67
|
auth0Config,
|
|
77
68
|
onError,
|
|
@@ -82,7 +73,7 @@ const authMiddleware = async ({ request, isProtectedRoute, language, host, proto
|
|
|
82
73
|
}
|
|
83
74
|
const handleUserProfileResult = await profile.handleUserProfile({
|
|
84
75
|
request,
|
|
85
|
-
response:
|
|
76
|
+
response: server.NextResponse.next(),
|
|
86
77
|
auth0Instance,
|
|
87
78
|
auth0Config,
|
|
88
79
|
brand,
|
|
@@ -91,6 +82,49 @@ const authMiddleware = async ({ request, isProtectedRoute, language, host, proto
|
|
|
91
82
|
log('User profile request handled', { requestId: requestId$1 });
|
|
92
83
|
return handleUserProfileResult;
|
|
93
84
|
}
|
|
85
|
+
let authResponse = server.NextResponse.next();
|
|
86
|
+
try {
|
|
87
|
+
log('Calling Auth0 middleware', { requestId: requestId$1 });
|
|
88
|
+
authResponse = await auth0Instance.middleware(request);
|
|
89
|
+
authResponse.headers.set(requestId.requestIdHeader, requestId$1);
|
|
90
|
+
log('Auth0 middleware completed', {
|
|
91
|
+
requestId: requestId$1,
|
|
92
|
+
status: authResponse.status,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
log('Caught error in auth middleware', { requestId: requestId$1, error });
|
|
97
|
+
if (isProtectedRoute(pathname)) {
|
|
98
|
+
log('Falling back to redirecting the user to the login page', {
|
|
99
|
+
requestId: requestId$1,
|
|
100
|
+
});
|
|
101
|
+
return server.NextResponse.redirect(new URL(authLinks.getLoginLink({
|
|
102
|
+
returnTo: `${pathname}${search}`,
|
|
103
|
+
language,
|
|
104
|
+
auth0Config,
|
|
105
|
+
}), origin));
|
|
106
|
+
}
|
|
107
|
+
log('Falling back to delete the session cookies', { requestId: requestId$1 });
|
|
108
|
+
const response = server.NextResponse.next();
|
|
109
|
+
const sessionCookies = [
|
|
110
|
+
auth0Config.sessionCookieName,
|
|
111
|
+
`${auth0Config.sessionCookieName}__0`,
|
|
112
|
+
`${auth0Config.sessionCookieName}__1`,
|
|
113
|
+
];
|
|
114
|
+
sessionCookies.forEach((cookieName) => {
|
|
115
|
+
response.cookies.set(cookieName, '', {
|
|
116
|
+
maxAge: 0,
|
|
117
|
+
path: '/',
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
return response;
|
|
121
|
+
}
|
|
122
|
+
logout.deleteRelatedSessionCookies({
|
|
123
|
+
host,
|
|
124
|
+
request,
|
|
125
|
+
response: authResponse,
|
|
126
|
+
auth0Config,
|
|
127
|
+
});
|
|
94
128
|
if (isAuthRoute(pathname, auth0Config) || isAuthErrorRoute) {
|
|
95
129
|
log('Auth route, returning response', { requestId: requestId$1 });
|
|
96
130
|
return authResponse;
|
|
@@ -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","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/server/middleware/index.ts"],"sourcesContent":[null],"names":["debug","requestId","getOrCreateRequestId","getAuth0Instance","getAuth0Config","handleCrossDomainLogout","requestIdHeader","addLoginParams","handleAccessTokenRequest","NextResponse","handleUserProfile","getLoginLink","deleteRelatedSessionCookies","protectRoute","combineHeaders"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NextResponse } from 'next/server';
|
|
2
2
|
import debug from 'debug';
|
|
3
|
+
import { getLoginLink } from '../../lib/authLinks.js';
|
|
3
4
|
import { getAuth0Config } from '../../config/auth0.js';
|
|
4
5
|
import { getAuth0Instance } from '../getAuth0Instance.js';
|
|
5
6
|
import { handleAccessTokenRequest } from './token.js';
|
|
@@ -23,7 +24,7 @@ const isAuthRoute = (pathname, auth0Config) => {
|
|
|
23
24
|
};
|
|
24
25
|
const authMiddleware = async ({ request, isProtectedRoute, language, host, protocol, onError, brand, }) => {
|
|
25
26
|
const requestId = getOrCreateRequestId(request);
|
|
26
|
-
const { pathname } = request.nextUrl;
|
|
27
|
+
const { pathname, search, origin } = request.nextUrl;
|
|
27
28
|
log('Processing request', {
|
|
28
29
|
requestId,
|
|
29
30
|
pathname,
|
|
@@ -53,19 +54,9 @@ const authMiddleware = async ({ request, isProtectedRoute, language, host, proto
|
|
|
53
54
|
request,
|
|
54
55
|
auth0Config,
|
|
55
56
|
});
|
|
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
57
|
const accessTokenRequestResult = await handleAccessTokenRequest({
|
|
67
58
|
request,
|
|
68
|
-
response:
|
|
59
|
+
response: NextResponse.next(),
|
|
69
60
|
auth0Instance,
|
|
70
61
|
auth0Config,
|
|
71
62
|
onError,
|
|
@@ -76,7 +67,7 @@ const authMiddleware = async ({ request, isProtectedRoute, language, host, proto
|
|
|
76
67
|
}
|
|
77
68
|
const handleUserProfileResult = await handleUserProfile({
|
|
78
69
|
request,
|
|
79
|
-
response:
|
|
70
|
+
response: NextResponse.next(),
|
|
80
71
|
auth0Instance,
|
|
81
72
|
auth0Config,
|
|
82
73
|
brand,
|
|
@@ -85,6 +76,49 @@ const authMiddleware = async ({ request, isProtectedRoute, language, host, proto
|
|
|
85
76
|
log('User profile request handled', { requestId });
|
|
86
77
|
return handleUserProfileResult;
|
|
87
78
|
}
|
|
79
|
+
let authResponse = NextResponse.next();
|
|
80
|
+
try {
|
|
81
|
+
log('Calling Auth0 middleware', { requestId });
|
|
82
|
+
authResponse = await auth0Instance.middleware(request);
|
|
83
|
+
authResponse.headers.set(requestIdHeader, requestId);
|
|
84
|
+
log('Auth0 middleware completed', {
|
|
85
|
+
requestId,
|
|
86
|
+
status: authResponse.status,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
log('Caught error in auth middleware', { requestId, error });
|
|
91
|
+
if (isProtectedRoute(pathname)) {
|
|
92
|
+
log('Falling back to redirecting the user to the login page', {
|
|
93
|
+
requestId,
|
|
94
|
+
});
|
|
95
|
+
return NextResponse.redirect(new URL(getLoginLink({
|
|
96
|
+
returnTo: `${pathname}${search}`,
|
|
97
|
+
language,
|
|
98
|
+
auth0Config,
|
|
99
|
+
}), origin));
|
|
100
|
+
}
|
|
101
|
+
log('Falling back to delete the session cookies', { requestId });
|
|
102
|
+
const response = NextResponse.next();
|
|
103
|
+
const sessionCookies = [
|
|
104
|
+
auth0Config.sessionCookieName,
|
|
105
|
+
`${auth0Config.sessionCookieName}__0`,
|
|
106
|
+
`${auth0Config.sessionCookieName}__1`,
|
|
107
|
+
];
|
|
108
|
+
sessionCookies.forEach((cookieName) => {
|
|
109
|
+
response.cookies.set(cookieName, '', {
|
|
110
|
+
maxAge: 0,
|
|
111
|
+
path: '/',
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
return response;
|
|
115
|
+
}
|
|
116
|
+
deleteRelatedSessionCookies({
|
|
117
|
+
host,
|
|
118
|
+
request,
|
|
119
|
+
response: authResponse,
|
|
120
|
+
auth0Config,
|
|
121
|
+
});
|
|
88
122
|
if (isAuthRoute(pathname, auth0Config) || isAuthErrorRoute) {
|
|
89
123
|
log('Auth route, returning response', { requestId });
|
|
90
124
|
return authResponse;
|
|
@@ -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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"}
|