naystack 1.4.3 → 1.4.5
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/constants.cjs.js +30 -0
- package/dist/auth/constants.d.mts +3 -0
- package/dist/auth/constants.d.ts +3 -0
- package/dist/auth/constants.esm.js +5 -0
- package/dist/auth/email/index.cjs.js +20 -4
- package/dist/auth/email/index.d.mts +1 -0
- package/dist/auth/email/index.d.ts +1 -0
- package/dist/auth/email/index.esm.js +19 -4
- package/dist/auth/email/routes/delete.cjs.js +10 -3
- package/dist/auth/email/routes/delete.esm.js +10 -3
- package/dist/auth/email/routes/get.cjs.js +8 -3
- package/dist/auth/email/routes/get.esm.js +8 -3
- package/dist/auth/email/routes/post.cjs.js +9 -2
- package/dist/auth/email/routes/post.esm.js +9 -2
- package/dist/auth/email/routes/put.cjs.js +9 -2
- package/dist/auth/email/routes/put.esm.js +9 -2
- package/dist/auth/email/token.cjs.js +18 -2
- package/dist/auth/email/token.d.mts +2 -1
- package/dist/auth/email/token.d.ts +2 -1
- package/dist/auth/email/token.esm.js +17 -2
- package/dist/auth/email/utils.cjs.js +8 -1
- package/dist/auth/email/utils.esm.js +8 -1
- package/dist/auth/google/get.cjs.js +25 -17
- package/dist/auth/google/get.d.mts +3 -1
- package/dist/auth/google/get.d.ts +3 -1
- package/dist/auth/google/get.esm.js +25 -17
- package/dist/auth/google/index.cjs.js +25 -17
- package/dist/auth/google/index.d.mts +6 -4
- package/dist/auth/google/index.d.ts +6 -4
- package/dist/auth/google/index.esm.js +25 -17
- package/dist/auth/index.cjs.js +38 -21
- package/dist/auth/index.d.mts +1 -0
- package/dist/auth/index.d.ts +1 -0
- package/dist/auth/index.esm.js +37 -21
- package/dist/auth/instagram/index.cjs.js +2 -0
- package/dist/auth/instagram/index.esm.js +2 -0
- package/dist/auth/instagram/route.cjs.js +2 -0
- package/dist/auth/instagram/route.esm.js +2 -0
- package/dist/file/index.cjs.js +8 -1
- package/dist/file/index.esm.js +8 -1
- package/dist/file/put.cjs.js +8 -1
- package/dist/file/put.esm.js +8 -1
- package/dist/file/setup.cjs.js +8 -1
- package/dist/file/setup.esm.js +8 -1
- package/package.json +1 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/auth/constants.ts
|
|
21
|
+
var constants_exports = {};
|
|
22
|
+
__export(constants_exports, {
|
|
23
|
+
REFRESH_COOKIE_NAME: () => REFRESH_COOKIE_NAME
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(constants_exports);
|
|
26
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
27
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
28
|
+
0 && (module.exports = {
|
|
29
|
+
REFRESH_COOKIE_NAME
|
|
30
|
+
});
|
|
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/auth/email/index.ts
|
|
21
21
|
var email_exports = {};
|
|
22
22
|
__export(email_exports, {
|
|
23
|
+
checkAuthStatus: () => checkAuthStatus,
|
|
23
24
|
getEmailAuthRoutes: () => getEmailAuthRoutes
|
|
24
25
|
});
|
|
25
26
|
module.exports = __toCommonJS(email_exports);
|
|
@@ -30,7 +31,14 @@ var import_jsonwebtoken2 = require("jsonwebtoken");
|
|
|
30
31
|
// src/auth/email/token.ts
|
|
31
32
|
var import_bcryptjs = require("bcryptjs");
|
|
32
33
|
var import_jsonwebtoken = require("jsonwebtoken");
|
|
34
|
+
var import_headers = require("next/headers");
|
|
35
|
+
var import_navigation = require("next/navigation");
|
|
33
36
|
var import_server = require("next/server");
|
|
37
|
+
|
|
38
|
+
// src/auth/constants.ts
|
|
39
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
40
|
+
|
|
41
|
+
// src/auth/email/token.ts
|
|
34
42
|
function generateAccessToken(id, signingKey) {
|
|
35
43
|
return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
|
|
36
44
|
expiresIn: "2h"
|
|
@@ -45,14 +53,14 @@ function getTokenizedResponse(accessToken, refreshToken) {
|
|
|
45
53
|
status: 200
|
|
46
54
|
});
|
|
47
55
|
if (!accessToken) {
|
|
48
|
-
response.cookies.set(
|
|
56
|
+
response.cookies.set(REFRESH_COOKIE_NAME, "", {
|
|
49
57
|
secure: false,
|
|
50
58
|
httpOnly: true,
|
|
51
59
|
expires: 0
|
|
52
60
|
});
|
|
53
61
|
}
|
|
54
62
|
if (refreshToken !== void 0) {
|
|
55
|
-
response.cookies.set(
|
|
63
|
+
response.cookies.set(REFRESH_COOKIE_NAME, refreshToken, {
|
|
56
64
|
secure: false,
|
|
57
65
|
httpOnly: true,
|
|
58
66
|
expires: refreshToken === "" ? 0 : new Date(Date.now() + 60 * 60 * 24 * 365 * 1e3)
|
|
@@ -76,6 +84,13 @@ function verifyUser(user, password) {
|
|
|
76
84
|
if (!user.password) return false;
|
|
77
85
|
return (0, import_bcryptjs.compare)(password, user.password);
|
|
78
86
|
}
|
|
87
|
+
async function checkAuthStatus(redirectUnauthorizedURL) {
|
|
88
|
+
const Cookie = await (0, import_headers.cookies)();
|
|
89
|
+
const isAuthorized = !!Cookie.get(REFRESH_COOKIE_NAME)?.value;
|
|
90
|
+
if (!isAuthorized && redirectUnauthorizedURL)
|
|
91
|
+
return (0, import_navigation.redirect)(redirectUnauthorizedURL);
|
|
92
|
+
return isAuthorized;
|
|
93
|
+
}
|
|
79
94
|
|
|
80
95
|
// src/auth/utils/errors.ts
|
|
81
96
|
var import_server2 = require("next/server");
|
|
@@ -133,7 +148,7 @@ async function verifyCaptcha(token, secret) {
|
|
|
133
148
|
var getContext = (keys, req) => {
|
|
134
149
|
const bearer = req.headers.get("authorization");
|
|
135
150
|
if (!bearer) {
|
|
136
|
-
const refresh = req.cookies.get(
|
|
151
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
137
152
|
const userId = getUserIdFromRefreshToken(keys.refresh, refresh);
|
|
138
153
|
if (userId) return { userId, isRefreshID: true };
|
|
139
154
|
return { userId: null };
|
|
@@ -163,7 +178,7 @@ var getDeleteRoute = (options) => async (req) => {
|
|
|
163
178
|
|
|
164
179
|
// src/auth/email/routes/get.ts
|
|
165
180
|
var getGetRoute = (options) => async (req) => {
|
|
166
|
-
const refresh = req.cookies.get(
|
|
181
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
167
182
|
const userID = getUserIdFromRefreshToken(options.keys.refresh, refresh);
|
|
168
183
|
if (userID) {
|
|
169
184
|
if (options.onRefresh) {
|
|
@@ -239,5 +254,6 @@ function getEmailAuthRoutes(options) {
|
|
|
239
254
|
}
|
|
240
255
|
// Annotate the CommonJS export names for ESM import in node:
|
|
241
256
|
0 && (module.exports = {
|
|
257
|
+
checkAuthStatus,
|
|
242
258
|
getEmailAuthRoutes
|
|
243
259
|
});
|
|
@@ -2,6 +2,7 @@ import * as next_server from 'next/server';
|
|
|
2
2
|
import { NextRequest } from 'next/server';
|
|
3
3
|
import { Context } from '../../graphql/types.mjs';
|
|
4
4
|
import { InitRoutesOptions } from './types.mjs';
|
|
5
|
+
export { checkAuthStatus } from './token.mjs';
|
|
5
6
|
import '../types.mjs';
|
|
6
7
|
|
|
7
8
|
declare function getEmailAuthRoutes(options: InitRoutesOptions): {
|
|
@@ -2,6 +2,7 @@ import * as next_server from 'next/server';
|
|
|
2
2
|
import { NextRequest } from 'next/server';
|
|
3
3
|
import { Context } from '../../graphql/types.js';
|
|
4
4
|
import { InitRoutesOptions } from './types.js';
|
|
5
|
+
export { checkAuthStatus } from './token.js';
|
|
5
6
|
import '../types.js';
|
|
6
7
|
|
|
7
8
|
declare function getEmailAuthRoutes(options: InitRoutesOptions): {
|
|
@@ -4,7 +4,14 @@ import { verify as verify2 } from "jsonwebtoken";
|
|
|
4
4
|
// src/auth/email/token.ts
|
|
5
5
|
import { compare } from "bcryptjs";
|
|
6
6
|
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
7
|
+
import { cookies } from "next/headers";
|
|
8
|
+
import { redirect } from "next/navigation";
|
|
7
9
|
import { NextResponse } from "next/server";
|
|
10
|
+
|
|
11
|
+
// src/auth/constants.ts
|
|
12
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
13
|
+
|
|
14
|
+
// src/auth/email/token.ts
|
|
8
15
|
function generateAccessToken(id, signingKey) {
|
|
9
16
|
return sign({ id }, signingKey, {
|
|
10
17
|
expiresIn: "2h"
|
|
@@ -19,14 +26,14 @@ function getTokenizedResponse(accessToken, refreshToken) {
|
|
|
19
26
|
status: 200
|
|
20
27
|
});
|
|
21
28
|
if (!accessToken) {
|
|
22
|
-
response.cookies.set(
|
|
29
|
+
response.cookies.set(REFRESH_COOKIE_NAME, "", {
|
|
23
30
|
secure: false,
|
|
24
31
|
httpOnly: true,
|
|
25
32
|
expires: 0
|
|
26
33
|
});
|
|
27
34
|
}
|
|
28
35
|
if (refreshToken !== void 0) {
|
|
29
|
-
response.cookies.set(
|
|
36
|
+
response.cookies.set(REFRESH_COOKIE_NAME, refreshToken, {
|
|
30
37
|
secure: false,
|
|
31
38
|
httpOnly: true,
|
|
32
39
|
expires: refreshToken === "" ? 0 : new Date(Date.now() + 60 * 60 * 24 * 365 * 1e3)
|
|
@@ -50,6 +57,13 @@ function verifyUser(user, password) {
|
|
|
50
57
|
if (!user.password) return false;
|
|
51
58
|
return compare(password, user.password);
|
|
52
59
|
}
|
|
60
|
+
async function checkAuthStatus(redirectUnauthorizedURL) {
|
|
61
|
+
const Cookie = await cookies();
|
|
62
|
+
const isAuthorized = !!Cookie.get(REFRESH_COOKIE_NAME)?.value;
|
|
63
|
+
if (!isAuthorized && redirectUnauthorizedURL)
|
|
64
|
+
return redirect(redirectUnauthorizedURL);
|
|
65
|
+
return isAuthorized;
|
|
66
|
+
}
|
|
53
67
|
|
|
54
68
|
// src/auth/utils/errors.ts
|
|
55
69
|
import { NextResponse as NextResponse2 } from "next/server";
|
|
@@ -107,7 +121,7 @@ async function verifyCaptcha(token, secret) {
|
|
|
107
121
|
var getContext = (keys, req) => {
|
|
108
122
|
const bearer = req.headers.get("authorization");
|
|
109
123
|
if (!bearer) {
|
|
110
|
-
const refresh = req.cookies.get(
|
|
124
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
111
125
|
const userId = getUserIdFromRefreshToken(keys.refresh, refresh);
|
|
112
126
|
if (userId) return { userId, isRefreshID: true };
|
|
113
127
|
return { userId: null };
|
|
@@ -137,7 +151,7 @@ var getDeleteRoute = (options) => async (req) => {
|
|
|
137
151
|
|
|
138
152
|
// src/auth/email/routes/get.ts
|
|
139
153
|
var getGetRoute = (options) => async (req) => {
|
|
140
|
-
const refresh = req.cookies.get(
|
|
154
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
141
155
|
const userID = getUserIdFromRefreshToken(options.keys.refresh, refresh);
|
|
142
156
|
if (userID) {
|
|
143
157
|
if (options.onRefresh) {
|
|
@@ -212,5 +226,6 @@ function getEmailAuthRoutes(options) {
|
|
|
212
226
|
};
|
|
213
227
|
}
|
|
214
228
|
export {
|
|
229
|
+
checkAuthStatus,
|
|
215
230
|
getEmailAuthRoutes
|
|
216
231
|
};
|
|
@@ -27,21 +27,28 @@ module.exports = __toCommonJS(delete_exports);
|
|
|
27
27
|
// src/auth/email/token.ts
|
|
28
28
|
var import_bcryptjs = require("bcryptjs");
|
|
29
29
|
var import_jsonwebtoken = require("jsonwebtoken");
|
|
30
|
+
var import_headers = require("next/headers");
|
|
31
|
+
var import_navigation = require("next/navigation");
|
|
30
32
|
var import_server = require("next/server");
|
|
33
|
+
|
|
34
|
+
// src/auth/constants.ts
|
|
35
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
36
|
+
|
|
37
|
+
// src/auth/email/token.ts
|
|
31
38
|
function getTokenizedResponse(accessToken, refreshToken) {
|
|
32
39
|
const body = { accessToken, refreshToken };
|
|
33
40
|
const response = import_server.NextResponse.json(body, {
|
|
34
41
|
status: 200
|
|
35
42
|
});
|
|
36
43
|
if (!accessToken) {
|
|
37
|
-
response.cookies.set(
|
|
44
|
+
response.cookies.set(REFRESH_COOKIE_NAME, "", {
|
|
38
45
|
secure: false,
|
|
39
46
|
httpOnly: true,
|
|
40
47
|
expires: 0
|
|
41
48
|
});
|
|
42
49
|
}
|
|
43
50
|
if (refreshToken !== void 0) {
|
|
44
|
-
response.cookies.set(
|
|
51
|
+
response.cookies.set(REFRESH_COOKIE_NAME, refreshToken, {
|
|
45
52
|
secure: false,
|
|
46
53
|
httpOnly: true,
|
|
47
54
|
expires: refreshToken === "" ? 0 : new Date(Date.now() + 60 * 60 * 24 * 365 * 1e3)
|
|
@@ -72,7 +79,7 @@ var import_server2 = require("next/server");
|
|
|
72
79
|
var getContext = (keys, req) => {
|
|
73
80
|
const bearer = req.headers.get("authorization");
|
|
74
81
|
if (!bearer) {
|
|
75
|
-
const refresh = req.cookies.get(
|
|
82
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
76
83
|
const userId = getUserIdFromRefreshToken(keys.refresh, refresh);
|
|
77
84
|
if (userId) return { userId, isRefreshID: true };
|
|
78
85
|
return { userId: null };
|
|
@@ -1,21 +1,28 @@
|
|
|
1
1
|
// src/auth/email/token.ts
|
|
2
2
|
import { compare } from "bcryptjs";
|
|
3
3
|
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
4
|
+
import { cookies } from "next/headers";
|
|
5
|
+
import { redirect } from "next/navigation";
|
|
4
6
|
import { NextResponse } from "next/server";
|
|
7
|
+
|
|
8
|
+
// src/auth/constants.ts
|
|
9
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
10
|
+
|
|
11
|
+
// src/auth/email/token.ts
|
|
5
12
|
function getTokenizedResponse(accessToken, refreshToken) {
|
|
6
13
|
const body = { accessToken, refreshToken };
|
|
7
14
|
const response = NextResponse.json(body, {
|
|
8
15
|
status: 200
|
|
9
16
|
});
|
|
10
17
|
if (!accessToken) {
|
|
11
|
-
response.cookies.set(
|
|
18
|
+
response.cookies.set(REFRESH_COOKIE_NAME, "", {
|
|
12
19
|
secure: false,
|
|
13
20
|
httpOnly: true,
|
|
14
21
|
expires: 0
|
|
15
22
|
});
|
|
16
23
|
}
|
|
17
24
|
if (refreshToken !== void 0) {
|
|
18
|
-
response.cookies.set(
|
|
25
|
+
response.cookies.set(REFRESH_COOKIE_NAME, refreshToken, {
|
|
19
26
|
secure: false,
|
|
20
27
|
httpOnly: true,
|
|
21
28
|
expires: refreshToken === "" ? 0 : new Date(Date.now() + 60 * 60 * 24 * 365 * 1e3)
|
|
@@ -46,7 +53,7 @@ import { NextResponse as NextResponse2 } from "next/server";
|
|
|
46
53
|
var getContext = (keys, req) => {
|
|
47
54
|
const bearer = req.headers.get("authorization");
|
|
48
55
|
if (!bearer) {
|
|
49
|
-
const refresh = req.cookies.get(
|
|
56
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
50
57
|
const userId = getUserIdFromRefreshToken(keys.refresh, refresh);
|
|
51
58
|
if (userId) return { userId, isRefreshID: true };
|
|
52
59
|
return { userId: null };
|
|
@@ -24,9 +24,14 @@ __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
|
+
|
|
27
30
|
// src/auth/email/token.ts
|
|
28
31
|
var import_bcryptjs = require("bcryptjs");
|
|
29
32
|
var import_jsonwebtoken = require("jsonwebtoken");
|
|
33
|
+
var import_headers = require("next/headers");
|
|
34
|
+
var import_navigation = require("next/navigation");
|
|
30
35
|
var import_server = require("next/server");
|
|
31
36
|
function generateAccessToken(id, signingKey) {
|
|
32
37
|
return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
|
|
@@ -39,14 +44,14 @@ function getTokenizedResponse(accessToken, refreshToken) {
|
|
|
39
44
|
status: 200
|
|
40
45
|
});
|
|
41
46
|
if (!accessToken) {
|
|
42
|
-
response.cookies.set(
|
|
47
|
+
response.cookies.set(REFRESH_COOKIE_NAME, "", {
|
|
43
48
|
secure: false,
|
|
44
49
|
httpOnly: true,
|
|
45
50
|
expires: 0
|
|
46
51
|
});
|
|
47
52
|
}
|
|
48
53
|
if (refreshToken !== void 0) {
|
|
49
|
-
response.cookies.set(
|
|
54
|
+
response.cookies.set(REFRESH_COOKIE_NAME, refreshToken, {
|
|
50
55
|
secure: false,
|
|
51
56
|
httpOnly: true,
|
|
52
57
|
expires: refreshToken === "" ? 0 : new Date(Date.now() + 60 * 60 * 24 * 365 * 1e3)
|
|
@@ -69,7 +74,7 @@ function getUserIdFromRefreshToken(refreshKey, refreshToken) {
|
|
|
69
74
|
|
|
70
75
|
// src/auth/email/routes/get.ts
|
|
71
76
|
var getGetRoute = (options) => async (req) => {
|
|
72
|
-
const refresh = req.cookies.get(
|
|
77
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
73
78
|
const userID = getUserIdFromRefreshToken(options.keys.refresh, refresh);
|
|
74
79
|
if (userID) {
|
|
75
80
|
if (options.onRefresh) {
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
// src/auth/constants.ts
|
|
2
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
3
|
+
|
|
1
4
|
// src/auth/email/token.ts
|
|
2
5
|
import { compare } from "bcryptjs";
|
|
3
6
|
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
7
|
+
import { cookies } from "next/headers";
|
|
8
|
+
import { redirect } from "next/navigation";
|
|
4
9
|
import { NextResponse } from "next/server";
|
|
5
10
|
function generateAccessToken(id, signingKey) {
|
|
6
11
|
return sign({ id }, signingKey, {
|
|
@@ -13,14 +18,14 @@ function getTokenizedResponse(accessToken, refreshToken) {
|
|
|
13
18
|
status: 200
|
|
14
19
|
});
|
|
15
20
|
if (!accessToken) {
|
|
16
|
-
response.cookies.set(
|
|
21
|
+
response.cookies.set(REFRESH_COOKIE_NAME, "", {
|
|
17
22
|
secure: false,
|
|
18
23
|
httpOnly: true,
|
|
19
24
|
expires: 0
|
|
20
25
|
});
|
|
21
26
|
}
|
|
22
27
|
if (refreshToken !== void 0) {
|
|
23
|
-
response.cookies.set(
|
|
28
|
+
response.cookies.set(REFRESH_COOKIE_NAME, refreshToken, {
|
|
24
29
|
secure: false,
|
|
25
30
|
httpOnly: true,
|
|
26
31
|
expires: refreshToken === "" ? 0 : new Date(Date.now() + 60 * 60 * 24 * 365 * 1e3)
|
|
@@ -43,7 +48,7 @@ function getUserIdFromRefreshToken(refreshKey, refreshToken) {
|
|
|
43
48
|
|
|
44
49
|
// src/auth/email/routes/get.ts
|
|
45
50
|
var getGetRoute = (options) => async (req) => {
|
|
46
|
-
const refresh = req.cookies.get(
|
|
51
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
47
52
|
const userID = getUserIdFromRefreshToken(options.keys.refresh, refresh);
|
|
48
53
|
if (userID) {
|
|
49
54
|
if (options.onRefresh) {
|
|
@@ -36,7 +36,14 @@ function handleError(status, message, onError) {
|
|
|
36
36
|
// src/auth/email/token.ts
|
|
37
37
|
var import_bcryptjs = require("bcryptjs");
|
|
38
38
|
var import_jsonwebtoken = require("jsonwebtoken");
|
|
39
|
+
var import_headers = require("next/headers");
|
|
40
|
+
var import_navigation = require("next/navigation");
|
|
39
41
|
var import_server2 = require("next/server");
|
|
42
|
+
|
|
43
|
+
// src/auth/constants.ts
|
|
44
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
45
|
+
|
|
46
|
+
// src/auth/email/token.ts
|
|
40
47
|
function generateAccessToken(id, signingKey) {
|
|
41
48
|
return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
|
|
42
49
|
expiresIn: "2h"
|
|
@@ -51,14 +58,14 @@ function getTokenizedResponse(accessToken, refreshToken) {
|
|
|
51
58
|
status: 200
|
|
52
59
|
});
|
|
53
60
|
if (!accessToken) {
|
|
54
|
-
response.cookies.set(
|
|
61
|
+
response.cookies.set(REFRESH_COOKIE_NAME, "", {
|
|
55
62
|
secure: false,
|
|
56
63
|
httpOnly: true,
|
|
57
64
|
expires: 0
|
|
58
65
|
});
|
|
59
66
|
}
|
|
60
67
|
if (refreshToken !== void 0) {
|
|
61
|
-
response.cookies.set(
|
|
68
|
+
response.cookies.set(REFRESH_COOKIE_NAME, refreshToken, {
|
|
62
69
|
secure: false,
|
|
63
70
|
httpOnly: true,
|
|
64
71
|
expires: refreshToken === "" ? 0 : new Date(Date.now() + 60 * 60 * 24 * 365 * 1e3)
|
|
@@ -12,7 +12,14 @@ function handleError(status, message, onError) {
|
|
|
12
12
|
// src/auth/email/token.ts
|
|
13
13
|
import { compare } from "bcryptjs";
|
|
14
14
|
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
15
|
+
import { cookies } from "next/headers";
|
|
16
|
+
import { redirect } from "next/navigation";
|
|
15
17
|
import { NextResponse as NextResponse2 } from "next/server";
|
|
18
|
+
|
|
19
|
+
// src/auth/constants.ts
|
|
20
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
21
|
+
|
|
22
|
+
// src/auth/email/token.ts
|
|
16
23
|
function generateAccessToken(id, signingKey) {
|
|
17
24
|
return sign({ id }, signingKey, {
|
|
18
25
|
expiresIn: "2h"
|
|
@@ -27,14 +34,14 @@ function getTokenizedResponse(accessToken, refreshToken) {
|
|
|
27
34
|
status: 200
|
|
28
35
|
});
|
|
29
36
|
if (!accessToken) {
|
|
30
|
-
response.cookies.set(
|
|
37
|
+
response.cookies.set(REFRESH_COOKIE_NAME, "", {
|
|
31
38
|
secure: false,
|
|
32
39
|
httpOnly: true,
|
|
33
40
|
expires: 0
|
|
34
41
|
});
|
|
35
42
|
}
|
|
36
43
|
if (refreshToken !== void 0) {
|
|
37
|
-
response.cookies.set(
|
|
44
|
+
response.cookies.set(REFRESH_COOKIE_NAME, refreshToken, {
|
|
38
45
|
secure: false,
|
|
39
46
|
httpOnly: true,
|
|
40
47
|
expires: refreshToken === "" ? 0 : new Date(Date.now() + 60 * 60 * 24 * 365 * 1e3)
|
|
@@ -35,7 +35,14 @@ function handleError(status, message, onError) {
|
|
|
35
35
|
// src/auth/email/token.ts
|
|
36
36
|
var import_bcryptjs = require("bcryptjs");
|
|
37
37
|
var import_jsonwebtoken = require("jsonwebtoken");
|
|
38
|
+
var import_headers = require("next/headers");
|
|
39
|
+
var import_navigation = require("next/navigation");
|
|
38
40
|
var import_server2 = require("next/server");
|
|
41
|
+
|
|
42
|
+
// src/auth/constants.ts
|
|
43
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
44
|
+
|
|
45
|
+
// src/auth/email/token.ts
|
|
39
46
|
function generateAccessToken(id, signingKey) {
|
|
40
47
|
return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
|
|
41
48
|
expiresIn: "2h"
|
|
@@ -50,14 +57,14 @@ function getTokenizedResponse(accessToken, refreshToken) {
|
|
|
50
57
|
status: 200
|
|
51
58
|
});
|
|
52
59
|
if (!accessToken) {
|
|
53
|
-
response.cookies.set(
|
|
60
|
+
response.cookies.set(REFRESH_COOKIE_NAME, "", {
|
|
54
61
|
secure: false,
|
|
55
62
|
httpOnly: true,
|
|
56
63
|
expires: 0
|
|
57
64
|
});
|
|
58
65
|
}
|
|
59
66
|
if (refreshToken !== void 0) {
|
|
60
|
-
response.cookies.set(
|
|
67
|
+
response.cookies.set(REFRESH_COOKIE_NAME, refreshToken, {
|
|
61
68
|
secure: false,
|
|
62
69
|
httpOnly: true,
|
|
63
70
|
expires: refreshToken === "" ? 0 : new Date(Date.now() + 60 * 60 * 24 * 365 * 1e3)
|
|
@@ -9,7 +9,14 @@ function handleError(status, message, onError) {
|
|
|
9
9
|
// src/auth/email/token.ts
|
|
10
10
|
import { compare } from "bcryptjs";
|
|
11
11
|
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
12
|
+
import { cookies } from "next/headers";
|
|
13
|
+
import { redirect } from "next/navigation";
|
|
12
14
|
import { NextResponse as NextResponse2 } from "next/server";
|
|
15
|
+
|
|
16
|
+
// src/auth/constants.ts
|
|
17
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
18
|
+
|
|
19
|
+
// src/auth/email/token.ts
|
|
13
20
|
function generateAccessToken(id, signingKey) {
|
|
14
21
|
return sign({ id }, signingKey, {
|
|
15
22
|
expiresIn: "2h"
|
|
@@ -24,14 +31,14 @@ function getTokenizedResponse(accessToken, refreshToken) {
|
|
|
24
31
|
status: 200
|
|
25
32
|
});
|
|
26
33
|
if (!accessToken) {
|
|
27
|
-
response.cookies.set(
|
|
34
|
+
response.cookies.set(REFRESH_COOKIE_NAME, "", {
|
|
28
35
|
secure: false,
|
|
29
36
|
httpOnly: true,
|
|
30
37
|
expires: 0
|
|
31
38
|
});
|
|
32
39
|
}
|
|
33
40
|
if (refreshToken !== void 0) {
|
|
34
|
-
response.cookies.set(
|
|
41
|
+
response.cookies.set(REFRESH_COOKIE_NAME, refreshToken, {
|
|
35
42
|
secure: false,
|
|
36
43
|
httpOnly: true,
|
|
37
44
|
expires: refreshToken === "" ? 0 : new Date(Date.now() + 60 * 60 * 24 * 365 * 1e3)
|
|
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/auth/email/token.ts
|
|
21
21
|
var token_exports = {};
|
|
22
22
|
__export(token_exports, {
|
|
23
|
+
checkAuthStatus: () => checkAuthStatus,
|
|
23
24
|
generateAccessToken: () => generateAccessToken,
|
|
24
25
|
generateRefreshToken: () => generateRefreshToken,
|
|
25
26
|
getTokenizedResponse: () => getTokenizedResponse,
|
|
@@ -30,7 +31,14 @@ __export(token_exports, {
|
|
|
30
31
|
module.exports = __toCommonJS(token_exports);
|
|
31
32
|
var import_bcryptjs = require("bcryptjs");
|
|
32
33
|
var import_jsonwebtoken = require("jsonwebtoken");
|
|
34
|
+
var import_headers = require("next/headers");
|
|
35
|
+
var import_navigation = require("next/navigation");
|
|
33
36
|
var import_server = require("next/server");
|
|
37
|
+
|
|
38
|
+
// src/auth/constants.ts
|
|
39
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
40
|
+
|
|
41
|
+
// src/auth/email/token.ts
|
|
34
42
|
function generateAccessToken(id, signingKey) {
|
|
35
43
|
return (0, import_jsonwebtoken.sign)({ id }, signingKey, {
|
|
36
44
|
expiresIn: "2h"
|
|
@@ -45,14 +53,14 @@ function getTokenizedResponse(accessToken, refreshToken) {
|
|
|
45
53
|
status: 200
|
|
46
54
|
});
|
|
47
55
|
if (!accessToken) {
|
|
48
|
-
response.cookies.set(
|
|
56
|
+
response.cookies.set(REFRESH_COOKIE_NAME, "", {
|
|
49
57
|
secure: false,
|
|
50
58
|
httpOnly: true,
|
|
51
59
|
expires: 0
|
|
52
60
|
});
|
|
53
61
|
}
|
|
54
62
|
if (refreshToken !== void 0) {
|
|
55
|
-
response.cookies.set(
|
|
63
|
+
response.cookies.set(REFRESH_COOKIE_NAME, refreshToken, {
|
|
56
64
|
secure: false,
|
|
57
65
|
httpOnly: true,
|
|
58
66
|
expires: refreshToken === "" ? 0 : new Date(Date.now() + 60 * 60 * 24 * 365 * 1e3)
|
|
@@ -88,8 +96,16 @@ function verifyUser(user, password) {
|
|
|
88
96
|
if (!user.password) return false;
|
|
89
97
|
return (0, import_bcryptjs.compare)(password, user.password);
|
|
90
98
|
}
|
|
99
|
+
async function checkAuthStatus(redirectUnauthorizedURL) {
|
|
100
|
+
const Cookie = await (0, import_headers.cookies)();
|
|
101
|
+
const isAuthorized = !!Cookie.get(REFRESH_COOKIE_NAME)?.value;
|
|
102
|
+
if (!isAuthorized && redirectUnauthorizedURL)
|
|
103
|
+
return (0, import_navigation.redirect)(redirectUnauthorizedURL);
|
|
104
|
+
return isAuthorized;
|
|
105
|
+
}
|
|
91
106
|
// Annotate the CommonJS export names for ESM import in node:
|
|
92
107
|
0 && (module.exports = {
|
|
108
|
+
checkAuthStatus,
|
|
93
109
|
generateAccessToken,
|
|
94
110
|
generateRefreshToken,
|
|
95
111
|
getTokenizedResponse,
|
|
@@ -10,5 +10,6 @@ declare function getTokenizedResponse(accessToken?: string, refreshToken?: strin
|
|
|
10
10
|
declare function getUserIdFromRefreshToken(refreshKey: string, refreshToken?: string): number | null;
|
|
11
11
|
declare function getUserIdFromAccessToken(refreshToken?: string): number | null;
|
|
12
12
|
declare function verifyUser(user: UserOutput, password: string): false | Promise<boolean>;
|
|
13
|
+
declare function checkAuthStatus(redirectUnauthorizedURL?: string): Promise<boolean>;
|
|
13
14
|
|
|
14
|
-
export { generateAccessToken, generateRefreshToken, getTokenizedResponse, getUserIdFromAccessToken, getUserIdFromRefreshToken, verifyUser };
|
|
15
|
+
export { checkAuthStatus, generateAccessToken, generateRefreshToken, getTokenizedResponse, getUserIdFromAccessToken, getUserIdFromRefreshToken, verifyUser };
|
|
@@ -10,5 +10,6 @@ declare function getTokenizedResponse(accessToken?: string, refreshToken?: strin
|
|
|
10
10
|
declare function getUserIdFromRefreshToken(refreshKey: string, refreshToken?: string): number | null;
|
|
11
11
|
declare function getUserIdFromAccessToken(refreshToken?: string): number | null;
|
|
12
12
|
declare function verifyUser(user: UserOutput, password: string): false | Promise<boolean>;
|
|
13
|
+
declare function checkAuthStatus(redirectUnauthorizedURL?: string): Promise<boolean>;
|
|
13
14
|
|
|
14
|
-
export { generateAccessToken, generateRefreshToken, getTokenizedResponse, getUserIdFromAccessToken, getUserIdFromRefreshToken, verifyUser };
|
|
15
|
+
export { checkAuthStatus, generateAccessToken, generateRefreshToken, getTokenizedResponse, getUserIdFromAccessToken, getUserIdFromRefreshToken, verifyUser };
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
// src/auth/email/token.ts
|
|
2
2
|
import { compare } from "bcryptjs";
|
|
3
3
|
import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
|
|
4
|
+
import { cookies } from "next/headers";
|
|
5
|
+
import { redirect } from "next/navigation";
|
|
4
6
|
import { NextResponse } from "next/server";
|
|
7
|
+
|
|
8
|
+
// src/auth/constants.ts
|
|
9
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
10
|
+
|
|
11
|
+
// src/auth/email/token.ts
|
|
5
12
|
function generateAccessToken(id, signingKey) {
|
|
6
13
|
return sign({ id }, signingKey, {
|
|
7
14
|
expiresIn: "2h"
|
|
@@ -16,14 +23,14 @@ function getTokenizedResponse(accessToken, refreshToken) {
|
|
|
16
23
|
status: 200
|
|
17
24
|
});
|
|
18
25
|
if (!accessToken) {
|
|
19
|
-
response.cookies.set(
|
|
26
|
+
response.cookies.set(REFRESH_COOKIE_NAME, "", {
|
|
20
27
|
secure: false,
|
|
21
28
|
httpOnly: true,
|
|
22
29
|
expires: 0
|
|
23
30
|
});
|
|
24
31
|
}
|
|
25
32
|
if (refreshToken !== void 0) {
|
|
26
|
-
response.cookies.set(
|
|
33
|
+
response.cookies.set(REFRESH_COOKIE_NAME, refreshToken, {
|
|
27
34
|
secure: false,
|
|
28
35
|
httpOnly: true,
|
|
29
36
|
expires: refreshToken === "" ? 0 : new Date(Date.now() + 60 * 60 * 24 * 365 * 1e3)
|
|
@@ -59,7 +66,15 @@ function verifyUser(user, password) {
|
|
|
59
66
|
if (!user.password) return false;
|
|
60
67
|
return compare(password, user.password);
|
|
61
68
|
}
|
|
69
|
+
async function checkAuthStatus(redirectUnauthorizedURL) {
|
|
70
|
+
const Cookie = await cookies();
|
|
71
|
+
const isAuthorized = !!Cookie.get(REFRESH_COOKIE_NAME)?.value;
|
|
72
|
+
if (!isAuthorized && redirectUnauthorizedURL)
|
|
73
|
+
return redirect(redirectUnauthorizedURL);
|
|
74
|
+
return isAuthorized;
|
|
75
|
+
}
|
|
62
76
|
export {
|
|
77
|
+
checkAuthStatus,
|
|
63
78
|
generateAccessToken,
|
|
64
79
|
generateRefreshToken,
|
|
65
80
|
getTokenizedResponse,
|
|
@@ -30,7 +30,14 @@ var import_jsonwebtoken2 = require("jsonwebtoken");
|
|
|
30
30
|
// src/auth/email/token.ts
|
|
31
31
|
var import_bcryptjs = require("bcryptjs");
|
|
32
32
|
var import_jsonwebtoken = require("jsonwebtoken");
|
|
33
|
+
var import_headers = require("next/headers");
|
|
34
|
+
var import_navigation = require("next/navigation");
|
|
33
35
|
var import_server = require("next/server");
|
|
36
|
+
|
|
37
|
+
// src/auth/constants.ts
|
|
38
|
+
var REFRESH_COOKIE_NAME = "refresh";
|
|
39
|
+
|
|
40
|
+
// src/auth/email/token.ts
|
|
34
41
|
function getUserIdFromRefreshToken(refreshKey, refreshToken) {
|
|
35
42
|
if (refreshToken)
|
|
36
43
|
try {
|
|
@@ -100,7 +107,7 @@ async function verifyCaptcha(token, secret) {
|
|
|
100
107
|
var getContext = (keys, req) => {
|
|
101
108
|
const bearer = req.headers.get("authorization");
|
|
102
109
|
if (!bearer) {
|
|
103
|
-
const refresh = req.cookies.get(
|
|
110
|
+
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
104
111
|
const userId = getUserIdFromRefreshToken(keys.refresh, refresh);
|
|
105
112
|
if (userId) return { userId, isRefreshID: true };
|
|
106
113
|
return { userId: null };
|