naystack 1.7.19 → 1.7.21
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/auth/email/index.cjs.js +15 -12
- package/dist/auth/email/index.d.mts +1 -1
- package/dist/auth/email/index.d.ts +1 -1
- package/dist/auth/email/index.esm.js +13 -12
- package/dist/auth/email/routes/get.cjs.js +14 -12
- package/dist/auth/email/routes/get.esm.js +14 -12
- package/dist/auth/email/routes/post.cjs.js +23 -24
- package/dist/auth/email/routes/post.esm.js +23 -24
- package/dist/auth/email/routes/put.cjs.js +21 -21
- package/dist/auth/email/routes/put.esm.js +21 -21
- package/dist/auth/email/token.cjs.js +4 -4
- package/dist/auth/email/token.d.mts +2 -4
- package/dist/auth/email/token.d.ts +2 -4
- package/dist/auth/email/token.esm.js +4 -4
- package/dist/auth/google/get.cjs.js +8 -7
- package/dist/auth/google/get.esm.js +8 -7
- package/dist/auth/google/index.cjs.js +8 -7
- package/dist/auth/google/index.esm.js +8 -7
- package/dist/auth/index.cjs.js +19 -15
- package/dist/auth/index.d.mts +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.esm.js +17 -15
- package/package.json +1 -1
|
@@ -33,6 +33,8 @@ __export(email_exports, {
|
|
|
33
33
|
AuthFetch: () => AuthFetch,
|
|
34
34
|
AuthWrapper: () => AuthWrapper,
|
|
35
35
|
checkAuthStatus: () => checkAuthStatus,
|
|
36
|
+
generateAccessToken: () => generateAccessToken,
|
|
37
|
+
generateRefreshToken: () => generateRefreshToken,
|
|
36
38
|
getContext: () => getContext,
|
|
37
39
|
setupEmailAuth: () => setupEmailAuth
|
|
38
40
|
});
|
|
@@ -141,13 +143,13 @@ function getEnv(key, skipCheck) {
|
|
|
141
143
|
}
|
|
142
144
|
|
|
143
145
|
// src/auth/email/token.ts
|
|
144
|
-
function generateAccessToken(id
|
|
145
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
146
|
+
function generateAccessToken(id) {
|
|
147
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
146
148
|
expiresIn: "2h"
|
|
147
149
|
});
|
|
148
150
|
}
|
|
149
|
-
function generateRefreshToken(id
|
|
150
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
151
|
+
function generateRefreshToken(id) {
|
|
152
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
151
153
|
}
|
|
152
154
|
function getTokenizedResponse(accessToken, refreshToken) {
|
|
153
155
|
const body = { accessToken, refreshToken };
|
|
@@ -293,7 +295,7 @@ var getGetRoute = (options) => async (req) => {
|
|
|
293
295
|
await options.onRefresh?.(userID, body);
|
|
294
296
|
}
|
|
295
297
|
return getTokenizedResponse(
|
|
296
|
-
generateAccessToken(userID
|
|
298
|
+
generateAccessToken(userID)
|
|
297
299
|
);
|
|
298
300
|
}
|
|
299
301
|
return getTokenizedResponse();
|
|
@@ -308,10 +310,9 @@ var getPostRoute = (options) => async (req) => {
|
|
|
308
310
|
if (existingUser) {
|
|
309
311
|
if (await verifyUser(existingUser, data.password)) {
|
|
310
312
|
return getTokenizedResponse(
|
|
311
|
-
generateAccessToken(existingUser.id
|
|
313
|
+
generateAccessToken(existingUser.id),
|
|
312
314
|
generateRefreshToken(
|
|
313
|
-
existingUser.id
|
|
314
|
-
getEnv("REFRESH_KEY" /* REFRESH_KEY */)
|
|
315
|
+
existingUser.id
|
|
315
316
|
)
|
|
316
317
|
);
|
|
317
318
|
}
|
|
@@ -327,8 +328,8 @@ var getPostRoute = (options) => async (req) => {
|
|
|
327
328
|
await options.onSignUp?.(newUser.id, data);
|
|
328
329
|
}
|
|
329
330
|
return getTokenizedResponse(
|
|
330
|
-
generateAccessToken(newUser.id
|
|
331
|
-
generateRefreshToken(newUser.id
|
|
331
|
+
generateAccessToken(newUser.id),
|
|
332
|
+
generateRefreshToken(newUser.id)
|
|
332
333
|
);
|
|
333
334
|
}
|
|
334
335
|
return getTokenizedResponse();
|
|
@@ -346,8 +347,8 @@ var getPutRoute = (options) => async (req) => {
|
|
|
346
347
|
await options.onLogin?.(user.id, data);
|
|
347
348
|
}
|
|
348
349
|
return getTokenizedResponse(
|
|
349
|
-
generateAccessToken(user.id
|
|
350
|
-
generateRefreshToken(user.id
|
|
350
|
+
generateAccessToken(user.id),
|
|
351
|
+
generateRefreshToken(user.id)
|
|
351
352
|
);
|
|
352
353
|
}
|
|
353
354
|
return handleError(403, "Invalid password", options.onError);
|
|
@@ -439,6 +440,8 @@ function setupEmailAuth(options) {
|
|
|
439
440
|
AuthFetch,
|
|
440
441
|
AuthWrapper,
|
|
441
442
|
checkAuthStatus,
|
|
443
|
+
generateAccessToken,
|
|
444
|
+
generateRefreshToken,
|
|
442
445
|
getContext,
|
|
443
446
|
setupEmailAuth
|
|
444
447
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from 'next/server';
|
|
2
2
|
import { SetupEmailAuthOptions } from './types.mjs';
|
|
3
3
|
export { AuthFetch, AuthWrapper } from './next.mjs';
|
|
4
|
-
export { checkAuthStatus } from './token.mjs';
|
|
4
|
+
export { checkAuthStatus, generateAccessToken, generateRefreshToken } from './token.mjs';
|
|
5
5
|
export { getContext } from './utils.mjs';
|
|
6
6
|
import '../types.mjs';
|
|
7
7
|
import 'react';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from 'next/server';
|
|
2
2
|
import { SetupEmailAuthOptions } from './types.js';
|
|
3
3
|
export { AuthFetch, AuthWrapper } from './next.js';
|
|
4
|
-
export { checkAuthStatus } from './token.js';
|
|
4
|
+
export { checkAuthStatus, generateAccessToken, generateRefreshToken } from './token.js';
|
|
5
5
|
export { getContext } from './utils.js';
|
|
6
6
|
import '../types.js';
|
|
7
7
|
import 'react';
|
|
@@ -103,13 +103,13 @@ function getEnv(key, skipCheck) {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
// src/auth/email/token.ts
|
|
106
|
-
function generateAccessToken(id
|
|
107
|
-
return sign({ id },
|
|
106
|
+
function generateAccessToken(id) {
|
|
107
|
+
return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
108
108
|
expiresIn: "2h"
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
|
-
function generateRefreshToken(id
|
|
112
|
-
return sign({ id },
|
|
111
|
+
function generateRefreshToken(id) {
|
|
112
|
+
return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
113
113
|
}
|
|
114
114
|
function getTokenizedResponse(accessToken, refreshToken) {
|
|
115
115
|
const body = { accessToken, refreshToken };
|
|
@@ -255,7 +255,7 @@ var getGetRoute = (options) => async (req) => {
|
|
|
255
255
|
await options.onRefresh?.(userID, body);
|
|
256
256
|
}
|
|
257
257
|
return getTokenizedResponse(
|
|
258
|
-
generateAccessToken(userID
|
|
258
|
+
generateAccessToken(userID)
|
|
259
259
|
);
|
|
260
260
|
}
|
|
261
261
|
return getTokenizedResponse();
|
|
@@ -270,10 +270,9 @@ var getPostRoute = (options) => async (req) => {
|
|
|
270
270
|
if (existingUser) {
|
|
271
271
|
if (await verifyUser(existingUser, data.password)) {
|
|
272
272
|
return getTokenizedResponse(
|
|
273
|
-
generateAccessToken(existingUser.id
|
|
273
|
+
generateAccessToken(existingUser.id),
|
|
274
274
|
generateRefreshToken(
|
|
275
|
-
existingUser.id
|
|
276
|
-
getEnv("REFRESH_KEY" /* REFRESH_KEY */)
|
|
275
|
+
existingUser.id
|
|
277
276
|
)
|
|
278
277
|
);
|
|
279
278
|
}
|
|
@@ -289,8 +288,8 @@ var getPostRoute = (options) => async (req) => {
|
|
|
289
288
|
await options.onSignUp?.(newUser.id, data);
|
|
290
289
|
}
|
|
291
290
|
return getTokenizedResponse(
|
|
292
|
-
generateAccessToken(newUser.id
|
|
293
|
-
generateRefreshToken(newUser.id
|
|
291
|
+
generateAccessToken(newUser.id),
|
|
292
|
+
generateRefreshToken(newUser.id)
|
|
294
293
|
);
|
|
295
294
|
}
|
|
296
295
|
return getTokenizedResponse();
|
|
@@ -308,8 +307,8 @@ var getPutRoute = (options) => async (req) => {
|
|
|
308
307
|
await options.onLogin?.(user.id, data);
|
|
309
308
|
}
|
|
310
309
|
return getTokenizedResponse(
|
|
311
|
-
generateAccessToken(user.id
|
|
312
|
-
generateRefreshToken(user.id
|
|
310
|
+
generateAccessToken(user.id),
|
|
311
|
+
generateRefreshToken(user.id)
|
|
313
312
|
);
|
|
314
313
|
}
|
|
315
314
|
return handleError(403, "Invalid password", options.onError);
|
|
@@ -404,6 +403,8 @@ export {
|
|
|
404
403
|
AuthFetch,
|
|
405
404
|
AuthWrapper,
|
|
406
405
|
checkAuthStatus,
|
|
406
|
+
generateAccessToken,
|
|
407
|
+
generateRefreshToken,
|
|
407
408
|
getContext,
|
|
408
409
|
setupEmailAuth
|
|
409
410
|
};
|
|
@@ -24,6 +24,17 @@ __export(get_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(get_exports);
|
|
26
26
|
|
|
27
|
+
// src/auth/constants.ts
|
|
28
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
29
|
+
var REFRESH_HEADER_NAME = "X-Refresh-Token";
|
|
30
|
+
|
|
31
|
+
// src/auth/email/token.ts
|
|
32
|
+
var import_bcryptjs = require("bcryptjs");
|
|
33
|
+
var import_jsonwebtoken = require("jsonwebtoken");
|
|
34
|
+
var import_headers = require("next/headers");
|
|
35
|
+
var import_navigation = require("next/navigation");
|
|
36
|
+
var import_server = require("next/server");
|
|
37
|
+
|
|
27
38
|
// src/env.ts
|
|
28
39
|
var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
|
|
29
40
|
var getEnvValue = (key) => {
|
|
@@ -74,18 +85,9 @@ function getEnv(key, skipCheck) {
|
|
|
74
85
|
return value;
|
|
75
86
|
}
|
|
76
87
|
|
|
77
|
-
// src/auth/constants.ts
|
|
78
|
-
var REFRESH_COOKIE_NAME = "refresh";
|
|
79
|
-
var REFRESH_HEADER_NAME = "X-Refresh-Token";
|
|
80
|
-
|
|
81
88
|
// src/auth/email/token.ts
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
var import_headers = require("next/headers");
|
|
85
|
-
var import_navigation = require("next/navigation");
|
|
86
|
-
var import_server = require("next/server");
|
|
87
|
-
function generateAccessToken(id, signingKey) {
|
|
88
|
-
return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
|
|
89
|
+
function generateAccessToken(id) {
|
|
90
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
89
91
|
expiresIn: "2h"
|
|
90
92
|
});
|
|
91
93
|
}
|
|
@@ -133,7 +135,7 @@ var getGetRoute = (options) => async (req) => {
|
|
|
133
135
|
await options.onRefresh?.(userID, body);
|
|
134
136
|
}
|
|
135
137
|
return getTokenizedResponse(
|
|
136
|
-
generateAccessToken(userID
|
|
138
|
+
generateAccessToken(userID)
|
|
137
139
|
);
|
|
138
140
|
}
|
|
139
141
|
return getTokenizedResponse();
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
// src/auth/constants.ts
|
|
2
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
3
|
+
var REFRESH_HEADER_NAME = "X-Refresh-Token";
|
|
4
|
+
|
|
5
|
+
// src/auth/email/token.ts
|
|
6
|
+
import { compare } from "bcryptjs";
|
|
7
|
+
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
8
|
+
import { cookies } from "next/headers";
|
|
9
|
+
import { redirect } from "next/navigation";
|
|
10
|
+
import { NextResponse } from "next/server";
|
|
11
|
+
|
|
1
12
|
// src/env.ts
|
|
2
13
|
var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
|
|
3
14
|
var getEnvValue = (key) => {
|
|
@@ -48,18 +59,9 @@ function getEnv(key, skipCheck) {
|
|
|
48
59
|
return value;
|
|
49
60
|
}
|
|
50
61
|
|
|
51
|
-
// src/auth/constants.ts
|
|
52
|
-
var REFRESH_COOKIE_NAME = "refresh";
|
|
53
|
-
var REFRESH_HEADER_NAME = "X-Refresh-Token";
|
|
54
|
-
|
|
55
62
|
// src/auth/email/token.ts
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
import { cookies } from "next/headers";
|
|
59
|
-
import { redirect } from "next/navigation";
|
|
60
|
-
import { NextResponse } from "next/server";
|
|
61
|
-
function generateAccessToken(id, signingKey) {
|
|
62
|
-
return sign({ id }, signingKey, {
|
|
63
|
+
function generateAccessToken(id) {
|
|
64
|
+
return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
63
65
|
expiresIn: "2h"
|
|
64
66
|
});
|
|
65
67
|
}
|
|
@@ -107,7 +109,7 @@ var getGetRoute = (options) => async (req) => {
|
|
|
107
109
|
await options.onRefresh?.(userID, body);
|
|
108
110
|
}
|
|
109
111
|
return getTokenizedResponse(
|
|
110
|
-
generateAccessToken(userID
|
|
112
|
+
generateAccessToken(userID)
|
|
111
113
|
);
|
|
112
114
|
}
|
|
113
115
|
return getTokenizedResponse();
|
|
@@ -25,6 +25,21 @@ __export(post_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(post_exports);
|
|
26
26
|
var import_bcryptjs2 = require("bcryptjs");
|
|
27
27
|
|
|
28
|
+
// src/auth/utils/errors.ts
|
|
29
|
+
var import_server = require("next/server");
|
|
30
|
+
function handleError(status, message, onError) {
|
|
31
|
+
const res = onError?.({ status, message });
|
|
32
|
+
if (res) return res;
|
|
33
|
+
return new import_server.NextResponse(message, { status });
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// src/auth/email/token.ts
|
|
37
|
+
var import_bcryptjs = require("bcryptjs");
|
|
38
|
+
var import_jsonwebtoken = require("jsonwebtoken");
|
|
39
|
+
var import_headers = require("next/headers");
|
|
40
|
+
var import_navigation = require("next/navigation");
|
|
41
|
+
var import_server2 = require("next/server");
|
|
42
|
+
|
|
28
43
|
// src/env.ts
|
|
29
44
|
var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
|
|
30
45
|
var getEnvValue = (key) => {
|
|
@@ -75,32 +90,17 @@ function getEnv(key, skipCheck) {
|
|
|
75
90
|
return value;
|
|
76
91
|
}
|
|
77
92
|
|
|
78
|
-
// src/auth/utils/errors.ts
|
|
79
|
-
var import_server = require("next/server");
|
|
80
|
-
function handleError(status, message, onError) {
|
|
81
|
-
const res = onError?.({ status, message });
|
|
82
|
-
if (res) return res;
|
|
83
|
-
return new import_server.NextResponse(message, { status });
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// src/auth/email/token.ts
|
|
87
|
-
var import_bcryptjs = require("bcryptjs");
|
|
88
|
-
var import_jsonwebtoken = require("jsonwebtoken");
|
|
89
|
-
var import_headers = require("next/headers");
|
|
90
|
-
var import_navigation = require("next/navigation");
|
|
91
|
-
var import_server2 = require("next/server");
|
|
92
|
-
|
|
93
93
|
// src/auth/constants.ts
|
|
94
94
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
95
95
|
|
|
96
96
|
// src/auth/email/token.ts
|
|
97
|
-
function generateAccessToken(id
|
|
98
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
97
|
+
function generateAccessToken(id) {
|
|
98
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
99
99
|
expiresIn: "2h"
|
|
100
100
|
});
|
|
101
101
|
}
|
|
102
|
-
function generateRefreshToken(id
|
|
103
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
102
|
+
function generateRefreshToken(id) {
|
|
103
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
104
104
|
}
|
|
105
105
|
function getTokenizedResponse(accessToken, refreshToken) {
|
|
106
106
|
const body = { accessToken, refreshToken };
|
|
@@ -184,10 +184,9 @@ var getPostRoute = (options) => async (req) => {
|
|
|
184
184
|
if (existingUser) {
|
|
185
185
|
if (await verifyUser(existingUser, data.password)) {
|
|
186
186
|
return getTokenizedResponse(
|
|
187
|
-
generateAccessToken(existingUser.id
|
|
187
|
+
generateAccessToken(existingUser.id),
|
|
188
188
|
generateRefreshToken(
|
|
189
|
-
existingUser.id
|
|
190
|
-
getEnv("REFRESH_KEY" /* REFRESH_KEY */)
|
|
189
|
+
existingUser.id
|
|
191
190
|
)
|
|
192
191
|
);
|
|
193
192
|
}
|
|
@@ -203,8 +202,8 @@ var getPostRoute = (options) => async (req) => {
|
|
|
203
202
|
await options.onSignUp?.(newUser.id, data);
|
|
204
203
|
}
|
|
205
204
|
return getTokenizedResponse(
|
|
206
|
-
generateAccessToken(newUser.id
|
|
207
|
-
generateRefreshToken(newUser.id
|
|
205
|
+
generateAccessToken(newUser.id),
|
|
206
|
+
generateRefreshToken(newUser.id)
|
|
208
207
|
);
|
|
209
208
|
}
|
|
210
209
|
return getTokenizedResponse();
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
// src/auth/email/routes/post.ts
|
|
2
2
|
import { hash } from "bcryptjs";
|
|
3
3
|
|
|
4
|
+
// src/auth/utils/errors.ts
|
|
5
|
+
import { NextResponse } from "next/server";
|
|
6
|
+
function handleError(status, message, onError) {
|
|
7
|
+
const res = onError?.({ status, message });
|
|
8
|
+
if (res) return res;
|
|
9
|
+
return new NextResponse(message, { status });
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// src/auth/email/token.ts
|
|
13
|
+
import { compare } from "bcryptjs";
|
|
14
|
+
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
15
|
+
import { cookies } from "next/headers";
|
|
16
|
+
import { redirect } from "next/navigation";
|
|
17
|
+
import { NextResponse as NextResponse2 } from "next/server";
|
|
18
|
+
|
|
4
19
|
// src/env.ts
|
|
5
20
|
var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
|
|
6
21
|
var getEnvValue = (key) => {
|
|
@@ -51,32 +66,17 @@ function getEnv(key, skipCheck) {
|
|
|
51
66
|
return value;
|
|
52
67
|
}
|
|
53
68
|
|
|
54
|
-
// src/auth/utils/errors.ts
|
|
55
|
-
import { NextResponse } from "next/server";
|
|
56
|
-
function handleError(status, message, onError) {
|
|
57
|
-
const res = onError?.({ status, message });
|
|
58
|
-
if (res) return res;
|
|
59
|
-
return new NextResponse(message, { status });
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// src/auth/email/token.ts
|
|
63
|
-
import { compare } from "bcryptjs";
|
|
64
|
-
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
65
|
-
import { cookies } from "next/headers";
|
|
66
|
-
import { redirect } from "next/navigation";
|
|
67
|
-
import { NextResponse as NextResponse2 } from "next/server";
|
|
68
|
-
|
|
69
69
|
// src/auth/constants.ts
|
|
70
70
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
71
71
|
|
|
72
72
|
// src/auth/email/token.ts
|
|
73
|
-
function generateAccessToken(id
|
|
74
|
-
return sign({ id },
|
|
73
|
+
function generateAccessToken(id) {
|
|
74
|
+
return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
75
75
|
expiresIn: "2h"
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
|
-
function generateRefreshToken(id
|
|
79
|
-
return sign({ id },
|
|
78
|
+
function generateRefreshToken(id) {
|
|
79
|
+
return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
80
80
|
}
|
|
81
81
|
function getTokenizedResponse(accessToken, refreshToken) {
|
|
82
82
|
const body = { accessToken, refreshToken };
|
|
@@ -160,10 +160,9 @@ var getPostRoute = (options) => async (req) => {
|
|
|
160
160
|
if (existingUser) {
|
|
161
161
|
if (await verifyUser(existingUser, data.password)) {
|
|
162
162
|
return getTokenizedResponse(
|
|
163
|
-
generateAccessToken(existingUser.id
|
|
163
|
+
generateAccessToken(existingUser.id),
|
|
164
164
|
generateRefreshToken(
|
|
165
|
-
existingUser.id
|
|
166
|
-
getEnv("REFRESH_KEY" /* REFRESH_KEY */)
|
|
165
|
+
existingUser.id
|
|
167
166
|
)
|
|
168
167
|
);
|
|
169
168
|
}
|
|
@@ -179,8 +178,8 @@ var getPostRoute = (options) => async (req) => {
|
|
|
179
178
|
await options.onSignUp?.(newUser.id, data);
|
|
180
179
|
}
|
|
181
180
|
return getTokenizedResponse(
|
|
182
|
-
generateAccessToken(newUser.id
|
|
183
|
-
generateRefreshToken(newUser.id
|
|
181
|
+
generateAccessToken(newUser.id),
|
|
182
|
+
generateRefreshToken(newUser.id)
|
|
184
183
|
);
|
|
185
184
|
}
|
|
186
185
|
return getTokenizedResponse();
|
|
@@ -24,6 +24,21 @@ __export(put_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(put_exports);
|
|
26
26
|
|
|
27
|
+
// src/auth/utils/errors.ts
|
|
28
|
+
var import_server = require("next/server");
|
|
29
|
+
function handleError(status, message, onError) {
|
|
30
|
+
const res = onError?.({ status, message });
|
|
31
|
+
if (res) return res;
|
|
32
|
+
return new import_server.NextResponse(message, { status });
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// src/auth/email/token.ts
|
|
36
|
+
var import_bcryptjs = require("bcryptjs");
|
|
37
|
+
var import_jsonwebtoken = require("jsonwebtoken");
|
|
38
|
+
var import_headers = require("next/headers");
|
|
39
|
+
var import_navigation = require("next/navigation");
|
|
40
|
+
var import_server2 = require("next/server");
|
|
41
|
+
|
|
27
42
|
// src/env.ts
|
|
28
43
|
var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
|
|
29
44
|
var getEnvValue = (key) => {
|
|
@@ -74,32 +89,17 @@ function getEnv(key, skipCheck) {
|
|
|
74
89
|
return value;
|
|
75
90
|
}
|
|
76
91
|
|
|
77
|
-
// src/auth/utils/errors.ts
|
|
78
|
-
var import_server = require("next/server");
|
|
79
|
-
function handleError(status, message, onError) {
|
|
80
|
-
const res = onError?.({ status, message });
|
|
81
|
-
if (res) return res;
|
|
82
|
-
return new import_server.NextResponse(message, { status });
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// src/auth/email/token.ts
|
|
86
|
-
var import_bcryptjs = require("bcryptjs");
|
|
87
|
-
var import_jsonwebtoken = require("jsonwebtoken");
|
|
88
|
-
var import_headers = require("next/headers");
|
|
89
|
-
var import_navigation = require("next/navigation");
|
|
90
|
-
var import_server2 = require("next/server");
|
|
91
|
-
|
|
92
92
|
// src/auth/constants.ts
|
|
93
93
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
94
94
|
|
|
95
95
|
// src/auth/email/token.ts
|
|
96
|
-
function generateAccessToken(id
|
|
97
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
96
|
+
function generateAccessToken(id) {
|
|
97
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
98
98
|
expiresIn: "2h"
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
|
-
function generateRefreshToken(id
|
|
102
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
101
|
+
function generateRefreshToken(id) {
|
|
102
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
103
103
|
}
|
|
104
104
|
function getTokenizedResponse(accessToken, refreshToken) {
|
|
105
105
|
const body = { accessToken, refreshToken };
|
|
@@ -187,8 +187,8 @@ var getPutRoute = (options) => async (req) => {
|
|
|
187
187
|
await options.onLogin?.(user.id, data);
|
|
188
188
|
}
|
|
189
189
|
return getTokenizedResponse(
|
|
190
|
-
generateAccessToken(user.id
|
|
191
|
-
generateRefreshToken(user.id
|
|
190
|
+
generateAccessToken(user.id),
|
|
191
|
+
generateRefreshToken(user.id)
|
|
192
192
|
);
|
|
193
193
|
}
|
|
194
194
|
return handleError(403, "Invalid password", options.onError);
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
// src/auth/utils/errors.ts
|
|
2
|
+
import { NextResponse } from "next/server";
|
|
3
|
+
function handleError(status, message, onError) {
|
|
4
|
+
const res = onError?.({ status, message });
|
|
5
|
+
if (res) return res;
|
|
6
|
+
return new NextResponse(message, { status });
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// src/auth/email/token.ts
|
|
10
|
+
import { compare } from "bcryptjs";
|
|
11
|
+
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
12
|
+
import { cookies } from "next/headers";
|
|
13
|
+
import { redirect } from "next/navigation";
|
|
14
|
+
import { NextResponse as NextResponse2 } from "next/server";
|
|
15
|
+
|
|
1
16
|
// src/env.ts
|
|
2
17
|
var EXTRA_ENV = globalThis.__NAYSTACK_ENV__ || (globalThis.__NAYSTACK_ENV__ = {});
|
|
3
18
|
var getEnvValue = (key) => {
|
|
@@ -48,32 +63,17 @@ function getEnv(key, skipCheck) {
|
|
|
48
63
|
return value;
|
|
49
64
|
}
|
|
50
65
|
|
|
51
|
-
// src/auth/utils/errors.ts
|
|
52
|
-
import { NextResponse } from "next/server";
|
|
53
|
-
function handleError(status, message, onError) {
|
|
54
|
-
const res = onError?.({ status, message });
|
|
55
|
-
if (res) return res;
|
|
56
|
-
return new NextResponse(message, { status });
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// src/auth/email/token.ts
|
|
60
|
-
import { compare } from "bcryptjs";
|
|
61
|
-
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
62
|
-
import { cookies } from "next/headers";
|
|
63
|
-
import { redirect } from "next/navigation";
|
|
64
|
-
import { NextResponse as NextResponse2 } from "next/server";
|
|
65
|
-
|
|
66
66
|
// src/auth/constants.ts
|
|
67
67
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
68
68
|
|
|
69
69
|
// src/auth/email/token.ts
|
|
70
|
-
function generateAccessToken(id
|
|
71
|
-
return sign({ id },
|
|
70
|
+
function generateAccessToken(id) {
|
|
71
|
+
return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
72
72
|
expiresIn: "2h"
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
|
-
function generateRefreshToken(id
|
|
76
|
-
return sign({ id },
|
|
75
|
+
function generateRefreshToken(id) {
|
|
76
|
+
return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
77
77
|
}
|
|
78
78
|
function getTokenizedResponse(accessToken, refreshToken) {
|
|
79
79
|
const body = { accessToken, refreshToken };
|
|
@@ -161,8 +161,8 @@ var getPutRoute = (options) => async (req) => {
|
|
|
161
161
|
await options.onLogin?.(user.id, data);
|
|
162
162
|
}
|
|
163
163
|
return getTokenizedResponse(
|
|
164
|
-
generateAccessToken(user.id
|
|
165
|
-
generateRefreshToken(user.id
|
|
164
|
+
generateAccessToken(user.id),
|
|
165
|
+
generateRefreshToken(user.id)
|
|
166
166
|
);
|
|
167
167
|
}
|
|
168
168
|
return handleError(403, "Invalid password", options.onError);
|
|
@@ -89,13 +89,13 @@ function getEnv(key, skipCheck) {
|
|
|
89
89
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
90
90
|
|
|
91
91
|
// src/auth/email/token.ts
|
|
92
|
-
function generateAccessToken(id
|
|
93
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
92
|
+
function generateAccessToken(id) {
|
|
93
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
94
94
|
expiresIn: "2h"
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
|
-
function generateRefreshToken(id
|
|
98
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
97
|
+
function generateRefreshToken(id) {
|
|
98
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
99
99
|
}
|
|
100
100
|
function getTokenizedResponse(accessToken, refreshToken) {
|
|
101
101
|
const body = { accessToken, refreshToken };
|
|
@@ -4,19 +4,17 @@ import { UserOutput } from '../types.mjs';
|
|
|
4
4
|
/**
|
|
5
5
|
* Generates a JWT access token for the user (2-hour expiry).
|
|
6
6
|
* @param id - User id to encode in the JWT payload.
|
|
7
|
-
* @param signingKey - Secret used to sign the token (typically `SIGNING_KEY` env var).
|
|
8
7
|
* @returns Signed JWT string.
|
|
9
8
|
* @category Auth
|
|
10
9
|
*/
|
|
11
|
-
declare function generateAccessToken(id: number
|
|
10
|
+
declare function generateAccessToken(id: number): string;
|
|
12
11
|
/**
|
|
13
12
|
* Generates a JWT refresh token for the user (no expiry — persisted in httpOnly cookie).
|
|
14
13
|
* @param id - User id to encode in the JWT payload.
|
|
15
|
-
* @param refreshKey - Secret used to sign the token (typically `REFRESH_KEY` env var).
|
|
16
14
|
* @returns Signed JWT string.
|
|
17
15
|
* @category Auth
|
|
18
16
|
*/
|
|
19
|
-
declare function generateRefreshToken(id: number
|
|
17
|
+
declare function generateRefreshToken(id: number): string;
|
|
20
18
|
/**
|
|
21
19
|
* Builds a NextResponse with access/refresh tokens in the JSON body and sets the refresh cookie.
|
|
22
20
|
*
|
|
@@ -4,19 +4,17 @@ import { UserOutput } from '../types.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Generates a JWT access token for the user (2-hour expiry).
|
|
6
6
|
* @param id - User id to encode in the JWT payload.
|
|
7
|
-
* @param signingKey - Secret used to sign the token (typically `SIGNING_KEY` env var).
|
|
8
7
|
* @returns Signed JWT string.
|
|
9
8
|
* @category Auth
|
|
10
9
|
*/
|
|
11
|
-
declare function generateAccessToken(id: number
|
|
10
|
+
declare function generateAccessToken(id: number): string;
|
|
12
11
|
/**
|
|
13
12
|
* Generates a JWT refresh token for the user (no expiry — persisted in httpOnly cookie).
|
|
14
13
|
* @param id - User id to encode in the JWT payload.
|
|
15
|
-
* @param refreshKey - Secret used to sign the token (typically `REFRESH_KEY` env var).
|
|
16
14
|
* @returns Signed JWT string.
|
|
17
15
|
* @category Auth
|
|
18
16
|
*/
|
|
19
|
-
declare function generateRefreshToken(id: number
|
|
17
|
+
declare function generateRefreshToken(id: number): string;
|
|
20
18
|
/**
|
|
21
19
|
* Builds a NextResponse with access/refresh tokens in the JSON body and sets the refresh cookie.
|
|
22
20
|
*
|
|
@@ -59,13 +59,13 @@ function getEnv(key, skipCheck) {
|
|
|
59
59
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
60
60
|
|
|
61
61
|
// src/auth/email/token.ts
|
|
62
|
-
function generateAccessToken(id
|
|
63
|
-
return sign({ id },
|
|
62
|
+
function generateAccessToken(id) {
|
|
63
|
+
return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
64
64
|
expiresIn: "2h"
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
-
function generateRefreshToken(id
|
|
68
|
-
return sign({ id },
|
|
67
|
+
function generateRefreshToken(id) {
|
|
68
|
+
return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
69
69
|
}
|
|
70
70
|
function getTokenizedResponse(accessToken, refreshToken) {
|
|
71
71
|
const body = { accessToken, refreshToken };
|
|
@@ -88,13 +88,13 @@ function getEnv(key, skipCheck) {
|
|
|
88
88
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
89
89
|
|
|
90
90
|
// src/auth/email/token.ts
|
|
91
|
-
function generateAccessToken(id
|
|
92
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
91
|
+
function generateAccessToken(id) {
|
|
92
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
93
93
|
expiresIn: "2h"
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
|
-
function generateRefreshToken(id
|
|
97
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
96
|
+
function generateRefreshToken(id) {
|
|
97
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
// src/auth/google/get.ts
|
|
@@ -171,15 +171,16 @@ var getGoogleGetRoute = ({
|
|
|
171
171
|
const id = await getUserIdFromEmail(user, data);
|
|
172
172
|
if (id) {
|
|
173
173
|
const accessToken = generateAccessToken(
|
|
174
|
-
id
|
|
175
|
-
getEnv("SIGNING_KEY" /* SIGNING_KEY */)
|
|
174
|
+
id
|
|
176
175
|
);
|
|
176
|
+
const refreshToken = generateRefreshToken(id);
|
|
177
177
|
const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
|
|
178
178
|
targetUrl.searchParams.set("accessToken", accessToken);
|
|
179
|
+
targetUrl.searchParams.set("refreshToken", refreshToken);
|
|
179
180
|
const res = import_server2.NextResponse.redirect(targetUrl);
|
|
180
181
|
res.cookies.set(
|
|
181
182
|
REFRESH_COOKIE_NAME,
|
|
182
|
-
|
|
183
|
+
refreshToken,
|
|
183
184
|
{
|
|
184
185
|
httpOnly: true,
|
|
185
186
|
secure: true
|
|
@@ -64,13 +64,13 @@ function getEnv(key, skipCheck) {
|
|
|
64
64
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
65
65
|
|
|
66
66
|
// src/auth/email/token.ts
|
|
67
|
-
function generateAccessToken(id
|
|
68
|
-
return sign({ id },
|
|
67
|
+
function generateAccessToken(id) {
|
|
68
|
+
return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
69
69
|
expiresIn: "2h"
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
|
-
function generateRefreshToken(id
|
|
73
|
-
return sign({ id },
|
|
72
|
+
function generateRefreshToken(id) {
|
|
73
|
+
return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
// src/auth/google/get.ts
|
|
@@ -147,15 +147,16 @@ var getGoogleGetRoute = ({
|
|
|
147
147
|
const id = await getUserIdFromEmail(user, data);
|
|
148
148
|
if (id) {
|
|
149
149
|
const accessToken = generateAccessToken(
|
|
150
|
-
id
|
|
151
|
-
getEnv("SIGNING_KEY" /* SIGNING_KEY */)
|
|
150
|
+
id
|
|
152
151
|
);
|
|
152
|
+
const refreshToken = generateRefreshToken(id);
|
|
153
153
|
const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
|
|
154
154
|
targetUrl.searchParams.set("accessToken", accessToken);
|
|
155
|
+
targetUrl.searchParams.set("refreshToken", refreshToken);
|
|
155
156
|
const res = NextResponse2.redirect(targetUrl);
|
|
156
157
|
res.cookies.set(
|
|
157
158
|
REFRESH_COOKIE_NAME,
|
|
158
|
-
|
|
159
|
+
refreshToken,
|
|
159
160
|
{
|
|
160
161
|
httpOnly: true,
|
|
161
162
|
secure: true
|
|
@@ -90,13 +90,13 @@ function getEnv(key, skipCheck) {
|
|
|
90
90
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
91
91
|
|
|
92
92
|
// src/auth/email/token.ts
|
|
93
|
-
function generateAccessToken(id
|
|
94
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
93
|
+
function generateAccessToken(id) {
|
|
94
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
95
95
|
expiresIn: "2h"
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
|
-
function generateRefreshToken(id
|
|
99
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
98
|
+
function generateRefreshToken(id) {
|
|
99
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
// src/auth/google/get.ts
|
|
@@ -173,15 +173,16 @@ var getGoogleGetRoute = ({
|
|
|
173
173
|
const id = await getUserIdFromEmail(user, data);
|
|
174
174
|
if (id) {
|
|
175
175
|
const accessToken = generateAccessToken(
|
|
176
|
-
id
|
|
177
|
-
getEnv("SIGNING_KEY" /* SIGNING_KEY */)
|
|
176
|
+
id
|
|
178
177
|
);
|
|
178
|
+
const refreshToken = generateRefreshToken(id);
|
|
179
179
|
const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
|
|
180
180
|
targetUrl.searchParams.set("accessToken", accessToken);
|
|
181
|
+
targetUrl.searchParams.set("refreshToken", refreshToken);
|
|
181
182
|
const res = import_server2.NextResponse.redirect(targetUrl);
|
|
182
183
|
res.cookies.set(
|
|
183
184
|
REFRESH_COOKIE_NAME,
|
|
184
|
-
|
|
185
|
+
refreshToken,
|
|
185
186
|
{
|
|
186
187
|
httpOnly: true,
|
|
187
188
|
secure: true
|
|
@@ -64,13 +64,13 @@ function getEnv(key, skipCheck) {
|
|
|
64
64
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
65
65
|
|
|
66
66
|
// src/auth/email/token.ts
|
|
67
|
-
function generateAccessToken(id
|
|
68
|
-
return sign({ id },
|
|
67
|
+
function generateAccessToken(id) {
|
|
68
|
+
return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
69
69
|
expiresIn: "2h"
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
|
-
function generateRefreshToken(id
|
|
73
|
-
return sign({ id },
|
|
72
|
+
function generateRefreshToken(id) {
|
|
73
|
+
return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
// src/auth/google/get.ts
|
|
@@ -147,15 +147,16 @@ var getGoogleGetRoute = ({
|
|
|
147
147
|
const id = await getUserIdFromEmail(user, data);
|
|
148
148
|
if (id) {
|
|
149
149
|
const accessToken = generateAccessToken(
|
|
150
|
-
id
|
|
151
|
-
getEnv("SIGNING_KEY" /* SIGNING_KEY */)
|
|
150
|
+
id
|
|
152
151
|
);
|
|
152
|
+
const refreshToken = generateRefreshToken(id);
|
|
153
153
|
const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
|
|
154
154
|
targetUrl.searchParams.set("accessToken", accessToken);
|
|
155
|
+
targetUrl.searchParams.set("refreshToken", refreshToken);
|
|
155
156
|
const res = NextResponse2.redirect(targetUrl);
|
|
156
157
|
res.cookies.set(
|
|
157
158
|
REFRESH_COOKIE_NAME,
|
|
158
|
-
|
|
159
|
+
refreshToken,
|
|
159
160
|
{
|
|
160
161
|
httpOnly: true,
|
|
161
162
|
secure: true
|
package/dist/auth/index.cjs.js
CHANGED
|
@@ -33,6 +33,8 @@ __export(auth_exports, {
|
|
|
33
33
|
AuthFetch: () => AuthFetch,
|
|
34
34
|
AuthWrapper: () => AuthWrapper,
|
|
35
35
|
checkAuthStatus: () => checkAuthStatus,
|
|
36
|
+
generateAccessToken: () => generateAccessToken,
|
|
37
|
+
generateRefreshToken: () => generateRefreshToken,
|
|
36
38
|
getContext: () => getContext,
|
|
37
39
|
getRefreshToken: () => getRefreshToken,
|
|
38
40
|
getRefreshedInstagramAccessToken: () => getRefreshedInstagramAccessToken,
|
|
@@ -147,13 +149,13 @@ function getEnv(key, skipCheck) {
|
|
|
147
149
|
}
|
|
148
150
|
|
|
149
151
|
// src/auth/email/token.ts
|
|
150
|
-
function generateAccessToken(id
|
|
151
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
152
|
+
function generateAccessToken(id) {
|
|
153
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
152
154
|
expiresIn: "2h"
|
|
153
155
|
});
|
|
154
156
|
}
|
|
155
|
-
function generateRefreshToken(id
|
|
156
|
-
return (0, import_jsonwebtoken.sign)({ id },
|
|
157
|
+
function generateRefreshToken(id) {
|
|
158
|
+
return (0, import_jsonwebtoken.sign)({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
157
159
|
}
|
|
158
160
|
function getTokenizedResponse(accessToken, refreshToken) {
|
|
159
161
|
const body = { accessToken, refreshToken };
|
|
@@ -311,7 +313,7 @@ var getGetRoute = (options) => async (req) => {
|
|
|
311
313
|
await options.onRefresh?.(userID, body);
|
|
312
314
|
}
|
|
313
315
|
return getTokenizedResponse(
|
|
314
|
-
generateAccessToken(userID
|
|
316
|
+
generateAccessToken(userID)
|
|
315
317
|
);
|
|
316
318
|
}
|
|
317
319
|
return getTokenizedResponse();
|
|
@@ -326,10 +328,9 @@ var getPostRoute = (options) => async (req) => {
|
|
|
326
328
|
if (existingUser) {
|
|
327
329
|
if (await verifyUser(existingUser, data.password)) {
|
|
328
330
|
return getTokenizedResponse(
|
|
329
|
-
generateAccessToken(existingUser.id
|
|
331
|
+
generateAccessToken(existingUser.id),
|
|
330
332
|
generateRefreshToken(
|
|
331
|
-
existingUser.id
|
|
332
|
-
getEnv("REFRESH_KEY" /* REFRESH_KEY */)
|
|
333
|
+
existingUser.id
|
|
333
334
|
)
|
|
334
335
|
);
|
|
335
336
|
}
|
|
@@ -345,8 +346,8 @@ var getPostRoute = (options) => async (req) => {
|
|
|
345
346
|
await options.onSignUp?.(newUser.id, data);
|
|
346
347
|
}
|
|
347
348
|
return getTokenizedResponse(
|
|
348
|
-
generateAccessToken(newUser.id
|
|
349
|
-
generateRefreshToken(newUser.id
|
|
349
|
+
generateAccessToken(newUser.id),
|
|
350
|
+
generateRefreshToken(newUser.id)
|
|
350
351
|
);
|
|
351
352
|
}
|
|
352
353
|
return getTokenizedResponse();
|
|
@@ -364,8 +365,8 @@ var getPutRoute = (options) => async (req) => {
|
|
|
364
365
|
await options.onLogin?.(user.id, data);
|
|
365
366
|
}
|
|
366
367
|
return getTokenizedResponse(
|
|
367
|
-
generateAccessToken(user.id
|
|
368
|
-
generateRefreshToken(user.id
|
|
368
|
+
generateAccessToken(user.id),
|
|
369
|
+
generateRefreshToken(user.id)
|
|
369
370
|
);
|
|
370
371
|
}
|
|
371
372
|
return handleError(403, "Invalid password", options.onError);
|
|
@@ -530,15 +531,16 @@ var getGoogleGetRoute = ({
|
|
|
530
531
|
const id = await getUserIdFromEmail(user, data);
|
|
531
532
|
if (id) {
|
|
532
533
|
const accessToken = generateAccessToken(
|
|
533
|
-
id
|
|
534
|
-
getEnv("SIGNING_KEY" /* SIGNING_KEY */)
|
|
534
|
+
id
|
|
535
535
|
);
|
|
536
|
+
const refreshToken = generateRefreshToken(id);
|
|
536
537
|
const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
|
|
537
538
|
targetUrl.searchParams.set("accessToken", accessToken);
|
|
539
|
+
targetUrl.searchParams.set("refreshToken", refreshToken);
|
|
538
540
|
const res = import_server6.NextResponse.redirect(targetUrl);
|
|
539
541
|
res.cookies.set(
|
|
540
542
|
REFRESH_COOKIE_NAME,
|
|
541
|
-
|
|
543
|
+
refreshToken,
|
|
542
544
|
{
|
|
543
545
|
httpOnly: true,
|
|
544
546
|
secure: true
|
|
@@ -681,6 +683,8 @@ async function getRefreshToken() {
|
|
|
681
683
|
AuthFetch,
|
|
682
684
|
AuthWrapper,
|
|
683
685
|
checkAuthStatus,
|
|
686
|
+
generateAccessToken,
|
|
687
|
+
generateRefreshToken,
|
|
684
688
|
getContext,
|
|
685
689
|
getRefreshToken,
|
|
686
690
|
getRefreshedInstagramAccessToken,
|
package/dist/auth/index.d.mts
CHANGED
|
@@ -3,7 +3,7 @@ export { SetupGoogleAuthOptions, setupGoogleAuth } from './google/index.mjs';
|
|
|
3
3
|
export { SetupInstagramAuthOptions, setupInstagramAuth } from './instagram/index.mjs';
|
|
4
4
|
export { getRefreshToken } from './utils/token.mjs';
|
|
5
5
|
export { AuthFetch, AuthWrapper } from './email/next.mjs';
|
|
6
|
-
export { checkAuthStatus } from './email/token.mjs';
|
|
6
|
+
export { checkAuthStatus, generateAccessToken, generateRefreshToken } from './email/token.mjs';
|
|
7
7
|
export { getContext } from './email/utils.mjs';
|
|
8
8
|
export { getRefreshedInstagramAccessToken } from './instagram/utils.mjs';
|
|
9
9
|
import 'next/server';
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { SetupGoogleAuthOptions, setupGoogleAuth } from './google/index.js';
|
|
|
3
3
|
export { SetupInstagramAuthOptions, setupInstagramAuth } from './instagram/index.js';
|
|
4
4
|
export { getRefreshToken } from './utils/token.js';
|
|
5
5
|
export { AuthFetch, AuthWrapper } from './email/next.js';
|
|
6
|
-
export { checkAuthStatus } from './email/token.js';
|
|
6
|
+
export { checkAuthStatus, generateAccessToken, generateRefreshToken } from './email/token.js';
|
|
7
7
|
export { getContext } from './email/utils.js';
|
|
8
8
|
export { getRefreshedInstagramAccessToken } from './instagram/utils.js';
|
|
9
9
|
import 'next/server';
|
package/dist/auth/index.esm.js
CHANGED
|
@@ -103,13 +103,13 @@ function getEnv(key, skipCheck) {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
// src/auth/email/token.ts
|
|
106
|
-
function generateAccessToken(id
|
|
107
|
-
return sign({ id },
|
|
106
|
+
function generateAccessToken(id) {
|
|
107
|
+
return sign({ id }, getEnv("SIGNING_KEY" /* SIGNING_KEY */), {
|
|
108
108
|
expiresIn: "2h"
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
|
-
function generateRefreshToken(id
|
|
112
|
-
return sign({ id },
|
|
111
|
+
function generateRefreshToken(id) {
|
|
112
|
+
return sign({ id }, getEnv("REFRESH_KEY" /* REFRESH_KEY */));
|
|
113
113
|
}
|
|
114
114
|
function getTokenizedResponse(accessToken, refreshToken) {
|
|
115
115
|
const body = { accessToken, refreshToken };
|
|
@@ -267,7 +267,7 @@ var getGetRoute = (options) => async (req) => {
|
|
|
267
267
|
await options.onRefresh?.(userID, body);
|
|
268
268
|
}
|
|
269
269
|
return getTokenizedResponse(
|
|
270
|
-
generateAccessToken(userID
|
|
270
|
+
generateAccessToken(userID)
|
|
271
271
|
);
|
|
272
272
|
}
|
|
273
273
|
return getTokenizedResponse();
|
|
@@ -282,10 +282,9 @@ var getPostRoute = (options) => async (req) => {
|
|
|
282
282
|
if (existingUser) {
|
|
283
283
|
if (await verifyUser(existingUser, data.password)) {
|
|
284
284
|
return getTokenizedResponse(
|
|
285
|
-
generateAccessToken(existingUser.id
|
|
285
|
+
generateAccessToken(existingUser.id),
|
|
286
286
|
generateRefreshToken(
|
|
287
|
-
existingUser.id
|
|
288
|
-
getEnv("REFRESH_KEY" /* REFRESH_KEY */)
|
|
287
|
+
existingUser.id
|
|
289
288
|
)
|
|
290
289
|
);
|
|
291
290
|
}
|
|
@@ -301,8 +300,8 @@ var getPostRoute = (options) => async (req) => {
|
|
|
301
300
|
await options.onSignUp?.(newUser.id, data);
|
|
302
301
|
}
|
|
303
302
|
return getTokenizedResponse(
|
|
304
|
-
generateAccessToken(newUser.id
|
|
305
|
-
generateRefreshToken(newUser.id
|
|
303
|
+
generateAccessToken(newUser.id),
|
|
304
|
+
generateRefreshToken(newUser.id)
|
|
306
305
|
);
|
|
307
306
|
}
|
|
308
307
|
return getTokenizedResponse();
|
|
@@ -320,8 +319,8 @@ var getPutRoute = (options) => async (req) => {
|
|
|
320
319
|
await options.onLogin?.(user.id, data);
|
|
321
320
|
}
|
|
322
321
|
return getTokenizedResponse(
|
|
323
|
-
generateAccessToken(user.id
|
|
324
|
-
generateRefreshToken(user.id
|
|
322
|
+
generateAccessToken(user.id),
|
|
323
|
+
generateRefreshToken(user.id)
|
|
325
324
|
);
|
|
326
325
|
}
|
|
327
326
|
return handleError(403, "Invalid password", options.onError);
|
|
@@ -490,15 +489,16 @@ var getGoogleGetRoute = ({
|
|
|
490
489
|
const id = await getUserIdFromEmail(user, data);
|
|
491
490
|
if (id) {
|
|
492
491
|
const accessToken = generateAccessToken(
|
|
493
|
-
id
|
|
494
|
-
getEnv("SIGNING_KEY" /* SIGNING_KEY */)
|
|
492
|
+
id
|
|
495
493
|
);
|
|
494
|
+
const refreshToken = generateRefreshToken(id);
|
|
496
495
|
const targetUrl = new URL(finalRedirectURL, req.nextUrl.origin);
|
|
497
496
|
targetUrl.searchParams.set("accessToken", accessToken);
|
|
497
|
+
targetUrl.searchParams.set("refreshToken", refreshToken);
|
|
498
498
|
const res = NextResponse5.redirect(targetUrl);
|
|
499
499
|
res.cookies.set(
|
|
500
500
|
REFRESH_COOKIE_NAME,
|
|
501
|
-
|
|
501
|
+
refreshToken,
|
|
502
502
|
{
|
|
503
503
|
httpOnly: true,
|
|
504
504
|
secure: true
|
|
@@ -640,6 +640,8 @@ export {
|
|
|
640
640
|
AuthFetch,
|
|
641
641
|
AuthWrapper,
|
|
642
642
|
checkAuthStatus,
|
|
643
|
+
generateAccessToken,
|
|
644
|
+
generateRefreshToken,
|
|
643
645
|
getContext,
|
|
644
646
|
getRefreshToken,
|
|
645
647
|
getRefreshedInstagramAccessToken,
|