@ackplus/nest-auth-react 1.1.38 → 1.1.39
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.
|
@@ -17,5 +17,7 @@ export interface NextAuthHelpers {
|
|
|
17
17
|
session: ClientSession | null;
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
export
|
|
20
|
+
export interface NextAuthHelpersConfig extends AuthClientConfig {
|
|
21
|
+
debug?: boolean;
|
|
22
|
+
}
|
|
21
23
|
export declare function createNextAuthHelpers(config: NextAuthHelpersConfig): NextAuthHelpers;
|
|
@@ -2,24 +2,92 @@ const COOKIE_NAMES = {
|
|
|
2
2
|
ACCESS_TOKEN: 'accessToken',
|
|
3
3
|
REFRESH_TOKEN: 'refreshToken',
|
|
4
4
|
};
|
|
5
|
+
class NextAuthDebugLogger {
|
|
6
|
+
constructor(enabled = false) {
|
|
7
|
+
this.prefix = '[NestAuth]';
|
|
8
|
+
this.enabled = enabled;
|
|
9
|
+
}
|
|
10
|
+
formatMessage(message, context) {
|
|
11
|
+
const timestamp = new Date().toISOString();
|
|
12
|
+
return context
|
|
13
|
+
? `${this.prefix} [${timestamp}] [${context}] ${message}`
|
|
14
|
+
: `${this.prefix} [${timestamp}] ${message}`;
|
|
15
|
+
}
|
|
16
|
+
debug(message, context, data) {
|
|
17
|
+
if (!this.enabled)
|
|
18
|
+
return;
|
|
19
|
+
const formatted = this.formatMessage(message, context);
|
|
20
|
+
if (data) {
|
|
21
|
+
console.log(formatted, data);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.log(formatted);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
warn(message, context, data) {
|
|
28
|
+
if (!this.enabled)
|
|
29
|
+
return;
|
|
30
|
+
const formatted = this.formatMessage(message, context);
|
|
31
|
+
if (data) {
|
|
32
|
+
console.warn(formatted, data);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.warn(formatted);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
error(message, context, data) {
|
|
39
|
+
if (!this.enabled)
|
|
40
|
+
return;
|
|
41
|
+
const formatted = this.formatMessage(message, context);
|
|
42
|
+
if (data) {
|
|
43
|
+
console.error(formatted, data);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
console.error(formatted);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
verbose(message, context, data) {
|
|
50
|
+
if (!this.enabled)
|
|
51
|
+
return;
|
|
52
|
+
const formatted = this.formatMessage(message, context);
|
|
53
|
+
if (data) {
|
|
54
|
+
console.debug(formatted, data);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
console.debug(formatted);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
5
61
|
export function createNextAuthHelpers(config) {
|
|
62
|
+
const logger = new NextAuthDebugLogger(config.debug);
|
|
6
63
|
const getServerAuth = async (request) => {
|
|
64
|
+
logger.debug('getServerAuth called', 'NextAuthHelpers');
|
|
7
65
|
try {
|
|
8
66
|
let accessToken;
|
|
9
67
|
if (request instanceof Request) {
|
|
68
|
+
logger.verbose('Extracting token from Request object', 'NextAuthHelpers');
|
|
10
69
|
const cookieHeader = request.headers.get('cookie');
|
|
11
70
|
if (cookieHeader) {
|
|
12
71
|
const cookies = parseCookies(cookieHeader);
|
|
13
72
|
accessToken = cookies[COOKIE_NAMES.ACCESS_TOKEN];
|
|
73
|
+
logger.debug(`Cookie header found, accessToken: ${accessToken ? 'present' : 'missing'}`, 'NextAuthHelpers');
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
logger.debug('No cookie header in request', 'NextAuthHelpers');
|
|
14
77
|
}
|
|
15
78
|
}
|
|
16
79
|
else {
|
|
80
|
+
logger.verbose('Extracting token from Next.js cookies object', 'NextAuthHelpers');
|
|
17
81
|
accessToken = request.cookies.get(COOKIE_NAMES.ACCESS_TOKEN)?.value;
|
|
82
|
+
logger.debug(`accessToken from cookies(): ${accessToken ? 'present' : 'missing'}`, 'NextAuthHelpers');
|
|
18
83
|
}
|
|
19
84
|
if (!accessToken) {
|
|
85
|
+
logger.debug('No access token found - returning null auth state', 'NextAuthHelpers');
|
|
20
86
|
return { user: null, session: null };
|
|
21
87
|
}
|
|
22
|
-
const
|
|
88
|
+
const verifyUrl = `${config.baseUrl}${config.endpoints?.verifySession || '/auth/verify-session'}`;
|
|
89
|
+
logger.debug(`Verifying session with backend: ${verifyUrl}`, 'NextAuthHelpers');
|
|
90
|
+
const response = await fetch(verifyUrl, {
|
|
23
91
|
headers: {
|
|
24
92
|
Authorization: `Bearer ${accessToken}`,
|
|
25
93
|
'Content-Type': 'application/json',
|
|
@@ -27,9 +95,11 @@ export function createNextAuthHelpers(config) {
|
|
|
27
95
|
cache: 'no-store',
|
|
28
96
|
});
|
|
29
97
|
if (!response.ok) {
|
|
98
|
+
logger.warn(`Session verification failed: ${response.status} ${response.statusText}`, 'NextAuthHelpers');
|
|
30
99
|
return { user: null, session: null };
|
|
31
100
|
}
|
|
32
101
|
const user = await response.json();
|
|
102
|
+
logger.debug('Session verified successfully', 'NextAuthHelpers', { userId: user.id });
|
|
33
103
|
return {
|
|
34
104
|
user,
|
|
35
105
|
session: {
|
|
@@ -39,26 +109,31 @@ export function createNextAuthHelpers(config) {
|
|
|
39
109
|
},
|
|
40
110
|
};
|
|
41
111
|
}
|
|
42
|
-
catch {
|
|
112
|
+
catch (error) {
|
|
113
|
+
logger.error(`Error in getServerAuth: ${error instanceof Error ? error.message : 'Unknown error'}`, 'NextAuthHelpers', error);
|
|
43
114
|
return { user: null, session: null };
|
|
44
115
|
}
|
|
45
116
|
};
|
|
46
117
|
const withAuth = (handler) => {
|
|
47
118
|
return (async (...args) => {
|
|
119
|
+
logger.debug('withAuth wrapper called', 'NextAuthHelpers');
|
|
48
120
|
const request = args[0];
|
|
49
121
|
const auth = await getServerAuth(request);
|
|
50
122
|
if (!auth.user) {
|
|
123
|
+
logger.warn('withAuth: No authenticated user - returning 401', 'NextAuthHelpers');
|
|
51
124
|
return new Response(JSON.stringify({ message: 'Unauthorized' }), {
|
|
52
125
|
status: 401,
|
|
53
126
|
headers: { 'Content-Type': 'application/json' },
|
|
54
127
|
});
|
|
55
128
|
}
|
|
129
|
+
logger.debug('withAuth: User authenticated, proceeding to handler', 'NextAuthHelpers', { userId: auth.user.id });
|
|
56
130
|
const headers = new Headers(request.headers);
|
|
57
131
|
headers.set('x-auth-user', JSON.stringify(auth.user));
|
|
58
132
|
return handler(...args);
|
|
59
133
|
});
|
|
60
134
|
};
|
|
61
135
|
const createInitialState = (serverAuth) => {
|
|
136
|
+
logger.debug('createInitialState called', 'NextAuthHelpers', { hasUser: !!serverAuth.user, hasSession: !!serverAuth.session });
|
|
62
137
|
return {
|
|
63
138
|
user: serverAuth.user,
|
|
64
139
|
session: serverAuth.session,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-next-auth-helpers.js","sourceRoot":"","sources":["../../src/next/create-next-auth-helpers.ts"],"names":[],"mappings":"AAkDA,MAAM,YAAY,GAAG;IACjB,YAAY,EAAE,aAAa;IAC3B,aAAa,EAAE,cAAc;CACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-next-auth-helpers.js","sourceRoot":"","sources":["../../src/next/create-next-auth-helpers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ackplus/nest-auth-react",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.39",
|
|
4
4
|
"description": "React SDK for NestJS authentication - hooks, guards, and Next.js integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"react": "^18.0.0 || ^19.0.0"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@ackplus/nest-auth-client": "1.1.
|
|
41
|
+
"@ackplus/nest-auth-client": "1.1.39"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"typescript": "^5.7.3",
|