naystack 1.4.16 → 1.4.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/client.cjs.js +69 -12
- package/dist/auth/email/client.esm.js +69 -12
- package/dist/auth/email/index.cjs.js +74 -15
- package/dist/auth/email/index.esm.js +74 -15
- package/dist/auth/email/routes/delete.cjs.js +56 -4
- package/dist/auth/email/routes/delete.esm.js +56 -4
- package/dist/auth/email/routes/get.cjs.js +54 -2
- package/dist/auth/email/routes/get.esm.js +54 -2
- package/dist/auth/email/routes/post.cjs.js +59 -6
- package/dist/auth/email/routes/post.esm.js +59 -6
- package/dist/auth/email/routes/put.cjs.js +54 -4
- package/dist/auth/email/routes/put.esm.js +54 -4
- package/dist/auth/email/token.cjs.js +51 -2
- package/dist/auth/email/token.esm.js +51 -2
- package/dist/auth/email/types.d.mts +1 -7
- package/dist/auth/email/types.d.ts +1 -7
- package/dist/auth/email/utils.cjs.js +58 -5
- package/dist/auth/email/utils.d.mts +2 -2
- package/dist/auth/email/utils.d.ts +2 -2
- package/dist/auth/email/utils.esm.js +58 -5
- package/dist/auth/google/get.cjs.js +57 -7
- package/dist/auth/google/get.d.mts +1 -3
- package/dist/auth/google/get.d.ts +1 -3
- package/dist/auth/google/get.esm.js +57 -7
- package/dist/auth/google/index.cjs.js +57 -7
- package/dist/auth/google/index.d.mts +0 -5
- package/dist/auth/google/index.d.ts +0 -5
- package/dist/auth/google/index.esm.js +57 -7
- package/dist/auth/index.cjs.js +89 -31
- package/dist/auth/index.esm.js +89 -31
- package/dist/auth/instagram/client.cjs.js +54 -1
- package/dist/auth/instagram/client.d.mts +1 -1
- package/dist/auth/instagram/client.d.ts +1 -1
- package/dist/auth/instagram/client.esm.js +52 -1
- package/dist/auth/instagram/index.cjs.js +58 -9
- package/dist/auth/instagram/index.d.mts +0 -2
- package/dist/auth/instagram/index.d.ts +0 -2
- package/dist/auth/instagram/index.esm.js +58 -9
- package/dist/auth/instagram/route.cjs.js +58 -9
- package/dist/auth/instagram/route.d.mts +1 -1
- package/dist/auth/instagram/route.d.ts +1 -1
- package/dist/auth/instagram/route.esm.js +58 -9
- package/dist/auth/instagram/utils.cjs.js +52 -1
- package/dist/auth/instagram/utils.esm.js +50 -1
- package/dist/client/index.cjs.js +50 -1
- package/dist/client/index.esm.js +50 -1
- package/dist/client/seo.cjs.js +52 -1
- package/dist/client/seo.esm.js +50 -1
- package/dist/env.cjs.js +101 -0
- package/dist/env.d.mts +24 -0
- package/dist/env.d.ts +24 -0
- package/dist/env.esm.js +74 -0
- package/dist/file/client.cjs.js +52 -1
- package/dist/file/client.esm.js +52 -1
- package/dist/file/index.cjs.js +82 -28
- package/dist/file/index.d.mts +0 -2
- package/dist/file/index.d.ts +0 -2
- package/dist/file/index.esm.js +82 -28
- package/dist/file/put.cjs.js +65 -11
- package/dist/file/put.d.mts +0 -2
- package/dist/file/put.d.ts +0 -2
- package/dist/file/put.esm.js +65 -11
- package/dist/file/setup.cjs.js +82 -28
- package/dist/file/setup.d.mts +0 -7
- package/dist/file/setup.d.ts +0 -7
- package/dist/file/setup.esm.js +82 -28
- package/dist/file/utils.cjs.js +70 -17
- package/dist/file/utils.d.mts +6 -10
- package/dist/file/utils.d.ts +6 -10
- package/dist/file/utils.esm.js +70 -17
- package/dist/graphql/client.cjs.js +57 -3
- package/dist/graphql/client.d.mts +1 -1
- package/dist/graphql/client.d.ts +1 -1
- package/dist/graphql/client.esm.js +57 -3
- package/dist/graphql/index.cjs.js +107 -3
- package/dist/graphql/index.d.mts +1 -0
- package/dist/graphql/index.d.ts +1 -0
- package/dist/graphql/index.esm.js +107 -3
- package/dist/graphql/init.cjs.js +53 -2
- package/dist/graphql/init.esm.js +53 -2
- package/dist/graphql/server.cjs.js +52 -1
- package/dist/graphql/server.esm.js +52 -1
- package/dist/graphql/utils.cjs.js +54 -1
- package/dist/graphql/utils.d.mts +10 -3
- package/dist/graphql/utils.d.ts +10 -3
- package/dist/graphql/utils.esm.js +54 -1
- package/package.json +1 -1
|
@@ -5,6 +5,55 @@ import { cookies } from "next/headers";
|
|
|
5
5
|
import { redirect } from "next/navigation";
|
|
6
6
|
import { NextResponse } from "next/server";
|
|
7
7
|
|
|
8
|
+
// src/env.ts
|
|
9
|
+
var getEnvValue = (key) => {
|
|
10
|
+
switch (key) {
|
|
11
|
+
case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
|
|
12
|
+
return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
|
|
13
|
+
case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
|
|
14
|
+
return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
|
|
15
|
+
case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
|
|
16
|
+
return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
|
|
17
|
+
case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
|
|
18
|
+
return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
|
|
19
|
+
case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
|
|
20
|
+
return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
|
|
21
|
+
case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
|
|
22
|
+
return process.env.NEXT_PUBLIC_BASE_URL;
|
|
23
|
+
case "REFRESH_KEY" /* REFRESH_KEY */:
|
|
24
|
+
return process.env.REFRESH_KEY;
|
|
25
|
+
case "SIGNING_KEY" /* SIGNING_KEY */:
|
|
26
|
+
return process.env.SIGNING_KEY;
|
|
27
|
+
case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
|
|
28
|
+
return process.env.INSTAGRAM_CLIENT_SECRET;
|
|
29
|
+
case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
|
|
30
|
+
return process.env.INSTAGRAM_CLIENT_ID;
|
|
31
|
+
case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
|
|
32
|
+
return process.env.GOOGLE_CLIENT_SECRET;
|
|
33
|
+
case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
|
|
34
|
+
return process.env.GOOGLE_CLIENT_ID;
|
|
35
|
+
case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
|
|
36
|
+
return process.env.TURNSTILE_KEY;
|
|
37
|
+
case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
|
|
38
|
+
return process.env.AWS_ACCESS_KEY_ID;
|
|
39
|
+
case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
|
|
40
|
+
return process.env.AWS_ACCESS_KEY_SECRET;
|
|
41
|
+
case "AWS_REGION" /* AWS_REGION */:
|
|
42
|
+
return process.env.AWS_REGION;
|
|
43
|
+
case "AWS_BUCKET" /* AWS_BUCKET */:
|
|
44
|
+
return process.env.AWS_BUCKET;
|
|
45
|
+
case "NODE_ENV" /* NODE_ENV */:
|
|
46
|
+
return process.env.NODE_ENV;
|
|
47
|
+
default:
|
|
48
|
+
return process.env[key];
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
function getEnv(key, skipCheck) {
|
|
52
|
+
const value = getEnvValue(key);
|
|
53
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
|
|
8
57
|
// src/auth/constants.ts
|
|
9
58
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
10
59
|
|
|
@@ -51,9 +100,9 @@ function getUserIdFromRefreshToken(refreshKey, refreshToken) {
|
|
|
51
100
|
return null;
|
|
52
101
|
}
|
|
53
102
|
function getUserIdFromAccessToken(refreshToken) {
|
|
54
|
-
if (refreshToken
|
|
103
|
+
if (refreshToken)
|
|
55
104
|
try {
|
|
56
|
-
const decoded = verify(refreshToken,
|
|
105
|
+
const decoded = verify(refreshToken, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
|
|
57
106
|
if (typeof decoded !== "string" && typeof decoded.id === "number")
|
|
58
107
|
return decoded.id;
|
|
59
108
|
} catch (e) {
|
|
@@ -5,16 +5,10 @@ type InitRoutesOptions = {
|
|
|
5
5
|
getUser: (data: any) => Promise<UserOutput | undefined>;
|
|
6
6
|
createUser: (user: any) => Promise<UserOutput | undefined>;
|
|
7
7
|
onError?: ErrorHandler;
|
|
8
|
-
keys: AuthKeys;
|
|
9
|
-
turnstileKey?: string;
|
|
10
8
|
onSignUp?: (userId: number | null, body: any) => Promise<void>;
|
|
11
9
|
onLogin?: (userId: number | null, body: any) => Promise<void>;
|
|
12
10
|
onRefresh?: (userId: number | null, body: any) => Promise<void>;
|
|
13
11
|
onLogout?: (userId: number | null, body: any) => Promise<void>;
|
|
14
12
|
};
|
|
15
|
-
interface AuthKeys {
|
|
16
|
-
signing: string;
|
|
17
|
-
refresh: string;
|
|
18
|
-
}
|
|
19
13
|
|
|
20
|
-
export type {
|
|
14
|
+
export type { InitRoutesOptions };
|
|
@@ -5,16 +5,10 @@ type InitRoutesOptions = {
|
|
|
5
5
|
getUser: (data: any) => Promise<UserOutput | undefined>;
|
|
6
6
|
createUser: (user: any) => Promise<UserOutput | undefined>;
|
|
7
7
|
onError?: ErrorHandler;
|
|
8
|
-
keys: AuthKeys;
|
|
9
|
-
turnstileKey?: string;
|
|
10
8
|
onSignUp?: (userId: number | null, body: any) => Promise<void>;
|
|
11
9
|
onLogin?: (userId: number | null, body: any) => Promise<void>;
|
|
12
10
|
onRefresh?: (userId: number | null, body: any) => Promise<void>;
|
|
13
11
|
onLogout?: (userId: number | null, body: any) => Promise<void>;
|
|
14
12
|
};
|
|
15
|
-
interface AuthKeys {
|
|
16
|
-
signing: string;
|
|
17
|
-
refresh: string;
|
|
18
|
-
}
|
|
19
13
|
|
|
20
|
-
export type {
|
|
14
|
+
export type { InitRoutesOptions };
|
|
@@ -34,6 +34,55 @@ var import_headers = require("next/headers");
|
|
|
34
34
|
var import_navigation = require("next/navigation");
|
|
35
35
|
var import_server = require("next/server");
|
|
36
36
|
|
|
37
|
+
// src/env.ts
|
|
38
|
+
var getEnvValue = (key) => {
|
|
39
|
+
switch (key) {
|
|
40
|
+
case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
|
|
41
|
+
return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
|
|
42
|
+
case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
|
|
43
|
+
return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
|
|
44
|
+
case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
|
|
45
|
+
return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
|
|
46
|
+
case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
|
|
47
|
+
return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
|
|
48
|
+
case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
|
|
49
|
+
return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
|
|
50
|
+
case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
|
|
51
|
+
return process.env.NEXT_PUBLIC_BASE_URL;
|
|
52
|
+
case "REFRESH_KEY" /* REFRESH_KEY */:
|
|
53
|
+
return process.env.REFRESH_KEY;
|
|
54
|
+
case "SIGNING_KEY" /* SIGNING_KEY */:
|
|
55
|
+
return process.env.SIGNING_KEY;
|
|
56
|
+
case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
|
|
57
|
+
return process.env.INSTAGRAM_CLIENT_SECRET;
|
|
58
|
+
case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
|
|
59
|
+
return process.env.INSTAGRAM_CLIENT_ID;
|
|
60
|
+
case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
|
|
61
|
+
return process.env.GOOGLE_CLIENT_SECRET;
|
|
62
|
+
case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
|
|
63
|
+
return process.env.GOOGLE_CLIENT_ID;
|
|
64
|
+
case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
|
|
65
|
+
return process.env.TURNSTILE_KEY;
|
|
66
|
+
case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
|
|
67
|
+
return process.env.AWS_ACCESS_KEY_ID;
|
|
68
|
+
case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
|
|
69
|
+
return process.env.AWS_ACCESS_KEY_SECRET;
|
|
70
|
+
case "AWS_REGION" /* AWS_REGION */:
|
|
71
|
+
return process.env.AWS_REGION;
|
|
72
|
+
case "AWS_BUCKET" /* AWS_BUCKET */:
|
|
73
|
+
return process.env.AWS_BUCKET;
|
|
74
|
+
case "NODE_ENV" /* NODE_ENV */:
|
|
75
|
+
return process.env.NODE_ENV;
|
|
76
|
+
default:
|
|
77
|
+
return process.env[key];
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
function getEnv(key, skipCheck) {
|
|
81
|
+
const value = getEnvValue(key);
|
|
82
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
83
|
+
return value;
|
|
84
|
+
}
|
|
85
|
+
|
|
37
86
|
// src/auth/constants.ts
|
|
38
87
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
39
88
|
|
|
@@ -66,12 +115,13 @@ async function massageRequest(req, options) {
|
|
|
66
115
|
return {
|
|
67
116
|
error: handleError(400, "Missing password", options.onError)
|
|
68
117
|
};
|
|
69
|
-
|
|
118
|
+
const turnstileKey = getEnv("TURNSTILE_KEY" /* TURNSTILE_KEY */, true);
|
|
119
|
+
if (turnstileKey) {
|
|
70
120
|
if (!data.captchaToken)
|
|
71
121
|
return {
|
|
72
122
|
error: handleError(400, "Missing captchaToken", options.onError)
|
|
73
123
|
};
|
|
74
|
-
if (!await verifyCaptcha(data.captchaToken,
|
|
124
|
+
if (!await verifyCaptcha(data.captchaToken, turnstileKey))
|
|
75
125
|
return {
|
|
76
126
|
error: handleError(400, "Invalid captcha", options.onError)
|
|
77
127
|
};
|
|
@@ -104,17 +154,20 @@ async function verifyCaptcha(token, secret) {
|
|
|
104
154
|
}
|
|
105
155
|
return false;
|
|
106
156
|
}
|
|
107
|
-
var getContext = (
|
|
157
|
+
var getContext = (req) => {
|
|
108
158
|
const bearer = req.headers.get("authorization");
|
|
109
159
|
if (!bearer) {
|
|
110
160
|
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
111
|
-
const userId = getUserIdFromRefreshToken(
|
|
161
|
+
const userId = getUserIdFromRefreshToken(
|
|
162
|
+
getEnv("REFRESH_KEY" /* REFRESH_KEY */),
|
|
163
|
+
refresh
|
|
164
|
+
);
|
|
112
165
|
if (userId) return { userId, isRefreshID: true };
|
|
113
166
|
return { userId: null };
|
|
114
167
|
}
|
|
115
168
|
const token = bearer.slice(7);
|
|
116
169
|
try {
|
|
117
|
-
const res = (0, import_jsonwebtoken2.verify)(token,
|
|
170
|
+
const res = (0, import_jsonwebtoken2.verify)(token, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
|
|
118
171
|
if (typeof res === "string") {
|
|
119
172
|
return { userId: null };
|
|
120
173
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from 'next/server';
|
|
2
2
|
import { Context } from '../../graphql/types.mjs';
|
|
3
|
-
import { InitRoutesOptions
|
|
3
|
+
import { InitRoutesOptions } from './types.mjs';
|
|
4
4
|
import '../types.mjs';
|
|
5
5
|
|
|
6
6
|
declare function massageRequest(req: NextRequest, options: InitRoutesOptions): Promise<{
|
|
@@ -12,6 +12,6 @@ declare function massageRequest(req: NextRequest, options: InitRoutesOptions): P
|
|
|
12
12
|
};
|
|
13
13
|
}>;
|
|
14
14
|
declare function verifyCaptcha(token: string, secret?: string): Promise<boolean>;
|
|
15
|
-
declare const getContext: (
|
|
15
|
+
declare const getContext: (req: NextRequest) => Context;
|
|
16
16
|
|
|
17
17
|
export { getContext, massageRequest, verifyCaptcha };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from 'next/server';
|
|
2
2
|
import { Context } from '../../graphql/types.js';
|
|
3
|
-
import { InitRoutesOptions
|
|
3
|
+
import { InitRoutesOptions } from './types.js';
|
|
4
4
|
import '../types.js';
|
|
5
5
|
|
|
6
6
|
declare function massageRequest(req: NextRequest, options: InitRoutesOptions): Promise<{
|
|
@@ -12,6 +12,6 @@ declare function massageRequest(req: NextRequest, options: InitRoutesOptions): P
|
|
|
12
12
|
};
|
|
13
13
|
}>;
|
|
14
14
|
declare function verifyCaptcha(token: string, secret?: string): Promise<boolean>;
|
|
15
|
-
declare const getContext: (
|
|
15
|
+
declare const getContext: (req: NextRequest) => Context;
|
|
16
16
|
|
|
17
17
|
export { getContext, massageRequest, verifyCaptcha };
|
|
@@ -8,6 +8,55 @@ import { cookies } from "next/headers";
|
|
|
8
8
|
import { redirect } from "next/navigation";
|
|
9
9
|
import { NextResponse } from "next/server";
|
|
10
10
|
|
|
11
|
+
// src/env.ts
|
|
12
|
+
var getEnvValue = (key) => {
|
|
13
|
+
switch (key) {
|
|
14
|
+
case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
|
|
15
|
+
return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
|
|
16
|
+
case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
|
|
17
|
+
return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
|
|
18
|
+
case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
|
|
19
|
+
return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
|
|
20
|
+
case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
|
|
21
|
+
return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
|
|
22
|
+
case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
|
|
23
|
+
return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
|
|
24
|
+
case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
|
|
25
|
+
return process.env.NEXT_PUBLIC_BASE_URL;
|
|
26
|
+
case "REFRESH_KEY" /* REFRESH_KEY */:
|
|
27
|
+
return process.env.REFRESH_KEY;
|
|
28
|
+
case "SIGNING_KEY" /* SIGNING_KEY */:
|
|
29
|
+
return process.env.SIGNING_KEY;
|
|
30
|
+
case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
|
|
31
|
+
return process.env.INSTAGRAM_CLIENT_SECRET;
|
|
32
|
+
case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
|
|
33
|
+
return process.env.INSTAGRAM_CLIENT_ID;
|
|
34
|
+
case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
|
|
35
|
+
return process.env.GOOGLE_CLIENT_SECRET;
|
|
36
|
+
case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
|
|
37
|
+
return process.env.GOOGLE_CLIENT_ID;
|
|
38
|
+
case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
|
|
39
|
+
return process.env.TURNSTILE_KEY;
|
|
40
|
+
case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
|
|
41
|
+
return process.env.AWS_ACCESS_KEY_ID;
|
|
42
|
+
case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
|
|
43
|
+
return process.env.AWS_ACCESS_KEY_SECRET;
|
|
44
|
+
case "AWS_REGION" /* AWS_REGION */:
|
|
45
|
+
return process.env.AWS_REGION;
|
|
46
|
+
case "AWS_BUCKET" /* AWS_BUCKET */:
|
|
47
|
+
return process.env.AWS_BUCKET;
|
|
48
|
+
case "NODE_ENV" /* NODE_ENV */:
|
|
49
|
+
return process.env.NODE_ENV;
|
|
50
|
+
default:
|
|
51
|
+
return process.env[key];
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
function getEnv(key, skipCheck) {
|
|
55
|
+
const value = getEnvValue(key);
|
|
56
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
57
|
+
return value;
|
|
58
|
+
}
|
|
59
|
+
|
|
11
60
|
// src/auth/constants.ts
|
|
12
61
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
13
62
|
|
|
@@ -40,12 +89,13 @@ async function massageRequest(req, options) {
|
|
|
40
89
|
return {
|
|
41
90
|
error: handleError(400, "Missing password", options.onError)
|
|
42
91
|
};
|
|
43
|
-
|
|
92
|
+
const turnstileKey = getEnv("TURNSTILE_KEY" /* TURNSTILE_KEY */, true);
|
|
93
|
+
if (turnstileKey) {
|
|
44
94
|
if (!data.captchaToken)
|
|
45
95
|
return {
|
|
46
96
|
error: handleError(400, "Missing captchaToken", options.onError)
|
|
47
97
|
};
|
|
48
|
-
if (!await verifyCaptcha(data.captchaToken,
|
|
98
|
+
if (!await verifyCaptcha(data.captchaToken, turnstileKey))
|
|
49
99
|
return {
|
|
50
100
|
error: handleError(400, "Invalid captcha", options.onError)
|
|
51
101
|
};
|
|
@@ -78,17 +128,20 @@ async function verifyCaptcha(token, secret) {
|
|
|
78
128
|
}
|
|
79
129
|
return false;
|
|
80
130
|
}
|
|
81
|
-
var getContext = (
|
|
131
|
+
var getContext = (req) => {
|
|
82
132
|
const bearer = req.headers.get("authorization");
|
|
83
133
|
if (!bearer) {
|
|
84
134
|
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
85
|
-
const userId = getUserIdFromRefreshToken(
|
|
135
|
+
const userId = getUserIdFromRefreshToken(
|
|
136
|
+
getEnv("REFRESH_KEY" /* REFRESH_KEY */),
|
|
137
|
+
refresh
|
|
138
|
+
);
|
|
86
139
|
if (userId) return { userId, isRefreshID: true };
|
|
87
140
|
return { userId: null };
|
|
88
141
|
}
|
|
89
142
|
const token = bearer.slice(7);
|
|
90
143
|
try {
|
|
91
|
-
const res = verify2(token,
|
|
144
|
+
const res = verify2(token, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
|
|
92
145
|
if (typeof res === "string") {
|
|
93
146
|
return { userId: null };
|
|
94
147
|
}
|
|
@@ -34,6 +34,55 @@ var import_headers = require("next/headers");
|
|
|
34
34
|
var import_navigation = require("next/navigation");
|
|
35
35
|
var import_server = require("next/server");
|
|
36
36
|
|
|
37
|
+
// src/env.ts
|
|
38
|
+
var getEnvValue = (key) => {
|
|
39
|
+
switch (key) {
|
|
40
|
+
case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
|
|
41
|
+
return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
|
|
42
|
+
case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
|
|
43
|
+
return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
|
|
44
|
+
case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
|
|
45
|
+
return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
|
|
46
|
+
case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
|
|
47
|
+
return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
|
|
48
|
+
case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
|
|
49
|
+
return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
|
|
50
|
+
case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
|
|
51
|
+
return process.env.NEXT_PUBLIC_BASE_URL;
|
|
52
|
+
case "REFRESH_KEY" /* REFRESH_KEY */:
|
|
53
|
+
return process.env.REFRESH_KEY;
|
|
54
|
+
case "SIGNING_KEY" /* SIGNING_KEY */:
|
|
55
|
+
return process.env.SIGNING_KEY;
|
|
56
|
+
case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
|
|
57
|
+
return process.env.INSTAGRAM_CLIENT_SECRET;
|
|
58
|
+
case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
|
|
59
|
+
return process.env.INSTAGRAM_CLIENT_ID;
|
|
60
|
+
case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
|
|
61
|
+
return process.env.GOOGLE_CLIENT_SECRET;
|
|
62
|
+
case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
|
|
63
|
+
return process.env.GOOGLE_CLIENT_ID;
|
|
64
|
+
case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
|
|
65
|
+
return process.env.TURNSTILE_KEY;
|
|
66
|
+
case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
|
|
67
|
+
return process.env.AWS_ACCESS_KEY_ID;
|
|
68
|
+
case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
|
|
69
|
+
return process.env.AWS_ACCESS_KEY_SECRET;
|
|
70
|
+
case "AWS_REGION" /* AWS_REGION */:
|
|
71
|
+
return process.env.AWS_REGION;
|
|
72
|
+
case "AWS_BUCKET" /* AWS_BUCKET */:
|
|
73
|
+
return process.env.AWS_BUCKET;
|
|
74
|
+
case "NODE_ENV" /* NODE_ENV */:
|
|
75
|
+
return process.env.NODE_ENV;
|
|
76
|
+
default:
|
|
77
|
+
return process.env[key];
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
function getEnv(key, skipCheck) {
|
|
81
|
+
const value = getEnvValue(key);
|
|
82
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
83
|
+
return value;
|
|
84
|
+
}
|
|
85
|
+
|
|
37
86
|
// src/auth/constants.ts
|
|
38
87
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
39
88
|
|
|
@@ -46,13 +95,14 @@ function generateRefreshToken(id, refreshKey) {
|
|
|
46
95
|
var getGoogleGetRoute = ({
|
|
47
96
|
getUserIdFromEmail,
|
|
48
97
|
redirectURL,
|
|
49
|
-
errorRedirectURL
|
|
50
|
-
clientId,
|
|
51
|
-
clientSecret,
|
|
52
|
-
keys
|
|
98
|
+
errorRedirectURL
|
|
53
99
|
}) => {
|
|
54
|
-
const url =
|
|
55
|
-
const oauth2Client = new import_googleapis.google.auth.OAuth2(
|
|
100
|
+
const url = getEnv("NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */);
|
|
101
|
+
const oauth2Client = new import_googleapis.google.auth.OAuth2(
|
|
102
|
+
getEnv("GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */),
|
|
103
|
+
getEnv("GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */),
|
|
104
|
+
url
|
|
105
|
+
);
|
|
56
106
|
return async (req) => {
|
|
57
107
|
const code = req.nextUrl.searchParams.get("code");
|
|
58
108
|
const error = req.nextUrl.searchParams.get("error");
|
|
@@ -96,7 +146,7 @@ var getGoogleGetRoute = ({
|
|
|
96
146
|
if (id) {
|
|
97
147
|
res.cookies.set(
|
|
98
148
|
REFRESH_COOKIE_NAME,
|
|
99
|
-
generateRefreshToken(id,
|
|
149
|
+
generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */)),
|
|
100
150
|
{
|
|
101
151
|
httpOnly: true,
|
|
102
152
|
secure: true
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from 'next/server';
|
|
2
2
|
import { InitGoogleAuthOptions } from './index.mjs';
|
|
3
3
|
import 'googleapis';
|
|
4
|
-
import '../email/types.mjs';
|
|
5
|
-
import '../types.mjs';
|
|
6
4
|
|
|
7
|
-
declare const getGoogleGetRoute: ({ getUserIdFromEmail, redirectURL, errorRedirectURL,
|
|
5
|
+
declare const getGoogleGetRoute: ({ getUserIdFromEmail, redirectURL, errorRedirectURL, }: InitGoogleAuthOptions) => (req: NextRequest) => Promise<NextResponse<unknown>>;
|
|
8
6
|
|
|
9
7
|
export { getGoogleGetRoute };
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from 'next/server';
|
|
2
2
|
import { InitGoogleAuthOptions } from './index.js';
|
|
3
3
|
import 'googleapis';
|
|
4
|
-
import '../email/types.js';
|
|
5
|
-
import '../types.js';
|
|
6
4
|
|
|
7
|
-
declare const getGoogleGetRoute: ({ getUserIdFromEmail, redirectURL, errorRedirectURL,
|
|
5
|
+
declare const getGoogleGetRoute: ({ getUserIdFromEmail, redirectURL, errorRedirectURL, }: InitGoogleAuthOptions) => (req: NextRequest) => Promise<NextResponse<unknown>>;
|
|
8
6
|
|
|
9
7
|
export { getGoogleGetRoute };
|
|
@@ -10,6 +10,55 @@ import { cookies } from "next/headers";
|
|
|
10
10
|
import { redirect } from "next/navigation";
|
|
11
11
|
import { NextResponse } from "next/server";
|
|
12
12
|
|
|
13
|
+
// src/env.ts
|
|
14
|
+
var getEnvValue = (key) => {
|
|
15
|
+
switch (key) {
|
|
16
|
+
case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
|
|
17
|
+
return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
|
|
18
|
+
case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
|
|
19
|
+
return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
|
|
20
|
+
case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
|
|
21
|
+
return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
|
|
22
|
+
case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
|
|
23
|
+
return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
|
|
24
|
+
case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
|
|
25
|
+
return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
|
|
26
|
+
case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
|
|
27
|
+
return process.env.NEXT_PUBLIC_BASE_URL;
|
|
28
|
+
case "REFRESH_KEY" /* REFRESH_KEY */:
|
|
29
|
+
return process.env.REFRESH_KEY;
|
|
30
|
+
case "SIGNING_KEY" /* SIGNING_KEY */:
|
|
31
|
+
return process.env.SIGNING_KEY;
|
|
32
|
+
case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
|
|
33
|
+
return process.env.INSTAGRAM_CLIENT_SECRET;
|
|
34
|
+
case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
|
|
35
|
+
return process.env.INSTAGRAM_CLIENT_ID;
|
|
36
|
+
case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
|
|
37
|
+
return process.env.GOOGLE_CLIENT_SECRET;
|
|
38
|
+
case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
|
|
39
|
+
return process.env.GOOGLE_CLIENT_ID;
|
|
40
|
+
case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
|
|
41
|
+
return process.env.TURNSTILE_KEY;
|
|
42
|
+
case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
|
|
43
|
+
return process.env.AWS_ACCESS_KEY_ID;
|
|
44
|
+
case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
|
|
45
|
+
return process.env.AWS_ACCESS_KEY_SECRET;
|
|
46
|
+
case "AWS_REGION" /* AWS_REGION */:
|
|
47
|
+
return process.env.AWS_REGION;
|
|
48
|
+
case "AWS_BUCKET" /* AWS_BUCKET */:
|
|
49
|
+
return process.env.AWS_BUCKET;
|
|
50
|
+
case "NODE_ENV" /* NODE_ENV */:
|
|
51
|
+
return process.env.NODE_ENV;
|
|
52
|
+
default:
|
|
53
|
+
return process.env[key];
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
function getEnv(key, skipCheck) {
|
|
57
|
+
const value = getEnvValue(key);
|
|
58
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
59
|
+
return value;
|
|
60
|
+
}
|
|
61
|
+
|
|
13
62
|
// src/auth/constants.ts
|
|
14
63
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
15
64
|
|
|
@@ -22,13 +71,14 @@ function generateRefreshToken(id, refreshKey) {
|
|
|
22
71
|
var getGoogleGetRoute = ({
|
|
23
72
|
getUserIdFromEmail,
|
|
24
73
|
redirectURL,
|
|
25
|
-
errorRedirectURL
|
|
26
|
-
clientId,
|
|
27
|
-
clientSecret,
|
|
28
|
-
keys
|
|
74
|
+
errorRedirectURL
|
|
29
75
|
}) => {
|
|
30
|
-
const url =
|
|
31
|
-
const oauth2Client = new google.auth.OAuth2(
|
|
76
|
+
const url = getEnv("NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */);
|
|
77
|
+
const oauth2Client = new google.auth.OAuth2(
|
|
78
|
+
getEnv("GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */),
|
|
79
|
+
getEnv("GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */),
|
|
80
|
+
url
|
|
81
|
+
);
|
|
32
82
|
return async (req) => {
|
|
33
83
|
const code = req.nextUrl.searchParams.get("code");
|
|
34
84
|
const error = req.nextUrl.searchParams.get("error");
|
|
@@ -72,7 +122,7 @@ var getGoogleGetRoute = ({
|
|
|
72
122
|
if (id) {
|
|
73
123
|
res.cookies.set(
|
|
74
124
|
REFRESH_COOKIE_NAME,
|
|
75
|
-
generateRefreshToken(id,
|
|
125
|
+
generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */)),
|
|
76
126
|
{
|
|
77
127
|
httpOnly: true,
|
|
78
128
|
secure: true
|
|
@@ -36,6 +36,55 @@ var import_headers = require("next/headers");
|
|
|
36
36
|
var import_navigation = require("next/navigation");
|
|
37
37
|
var import_server = require("next/server");
|
|
38
38
|
|
|
39
|
+
// src/env.ts
|
|
40
|
+
var getEnvValue = (key) => {
|
|
41
|
+
switch (key) {
|
|
42
|
+
case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
|
|
43
|
+
return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
|
|
44
|
+
case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
|
|
45
|
+
return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
|
|
46
|
+
case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
|
|
47
|
+
return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
|
|
48
|
+
case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
|
|
49
|
+
return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
|
|
50
|
+
case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
|
|
51
|
+
return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
|
|
52
|
+
case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
|
|
53
|
+
return process.env.NEXT_PUBLIC_BASE_URL;
|
|
54
|
+
case "REFRESH_KEY" /* REFRESH_KEY */:
|
|
55
|
+
return process.env.REFRESH_KEY;
|
|
56
|
+
case "SIGNING_KEY" /* SIGNING_KEY */:
|
|
57
|
+
return process.env.SIGNING_KEY;
|
|
58
|
+
case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
|
|
59
|
+
return process.env.INSTAGRAM_CLIENT_SECRET;
|
|
60
|
+
case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
|
|
61
|
+
return process.env.INSTAGRAM_CLIENT_ID;
|
|
62
|
+
case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
|
|
63
|
+
return process.env.GOOGLE_CLIENT_SECRET;
|
|
64
|
+
case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
|
|
65
|
+
return process.env.GOOGLE_CLIENT_ID;
|
|
66
|
+
case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
|
|
67
|
+
return process.env.TURNSTILE_KEY;
|
|
68
|
+
case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
|
|
69
|
+
return process.env.AWS_ACCESS_KEY_ID;
|
|
70
|
+
case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
|
|
71
|
+
return process.env.AWS_ACCESS_KEY_SECRET;
|
|
72
|
+
case "AWS_REGION" /* AWS_REGION */:
|
|
73
|
+
return process.env.AWS_REGION;
|
|
74
|
+
case "AWS_BUCKET" /* AWS_BUCKET */:
|
|
75
|
+
return process.env.AWS_BUCKET;
|
|
76
|
+
case "NODE_ENV" /* NODE_ENV */:
|
|
77
|
+
return process.env.NODE_ENV;
|
|
78
|
+
default:
|
|
79
|
+
return process.env[key];
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
function getEnv(key, skipCheck) {
|
|
83
|
+
const value = getEnvValue(key);
|
|
84
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
85
|
+
return value;
|
|
86
|
+
}
|
|
87
|
+
|
|
39
88
|
// src/auth/constants.ts
|
|
40
89
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
41
90
|
|
|
@@ -48,13 +97,14 @@ function generateRefreshToken(id, refreshKey) {
|
|
|
48
97
|
var getGoogleGetRoute = ({
|
|
49
98
|
getUserIdFromEmail,
|
|
50
99
|
redirectURL,
|
|
51
|
-
errorRedirectURL
|
|
52
|
-
clientId,
|
|
53
|
-
clientSecret,
|
|
54
|
-
keys
|
|
100
|
+
errorRedirectURL
|
|
55
101
|
}) => {
|
|
56
|
-
const url =
|
|
57
|
-
const oauth2Client = new import_googleapis.google.auth.OAuth2(
|
|
102
|
+
const url = getEnv("NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */);
|
|
103
|
+
const oauth2Client = new import_googleapis.google.auth.OAuth2(
|
|
104
|
+
getEnv("GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */),
|
|
105
|
+
getEnv("GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */),
|
|
106
|
+
url
|
|
107
|
+
);
|
|
58
108
|
return async (req) => {
|
|
59
109
|
const code = req.nextUrl.searchParams.get("code");
|
|
60
110
|
const error = req.nextUrl.searchParams.get("error");
|
|
@@ -98,7 +148,7 @@ var getGoogleGetRoute = ({
|
|
|
98
148
|
if (id) {
|
|
99
149
|
res.cookies.set(
|
|
100
150
|
REFRESH_COOKIE_NAME,
|
|
101
|
-
generateRefreshToken(id,
|
|
151
|
+
generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */)),
|
|
102
152
|
{
|
|
103
153
|
httpOnly: true,
|
|
104
154
|
secure: true
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import * as next_server from 'next/server';
|
|
2
2
|
import { oauth2_v2 } from 'googleapis';
|
|
3
|
-
import { AuthKeys } from '../email/types.mjs';
|
|
4
|
-
import '../types.mjs';
|
|
5
3
|
|
|
6
4
|
type Schema$Userinfo = oauth2_v2.Schema$Userinfo;
|
|
7
5
|
interface InitGoogleAuthOptions {
|
|
8
6
|
getUserIdFromEmail: (email: Schema$Userinfo) => Promise<number | null>;
|
|
9
7
|
redirectURL: string;
|
|
10
8
|
errorRedirectURL?: string;
|
|
11
|
-
clientId: string;
|
|
12
|
-
clientSecret: string;
|
|
13
|
-
keys: AuthKeys;
|
|
14
9
|
}
|
|
15
10
|
declare function initGoogleAuth(props: InitGoogleAuthOptions): {
|
|
16
11
|
GET: (req: next_server.NextRequest) => Promise<next_server.NextResponse<unknown>>;
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import * as next_server from 'next/server';
|
|
2
2
|
import { oauth2_v2 } from 'googleapis';
|
|
3
|
-
import { AuthKeys } from '../email/types.js';
|
|
4
|
-
import '../types.js';
|
|
5
3
|
|
|
6
4
|
type Schema$Userinfo = oauth2_v2.Schema$Userinfo;
|
|
7
5
|
interface InitGoogleAuthOptions {
|
|
8
6
|
getUserIdFromEmail: (email: Schema$Userinfo) => Promise<number | null>;
|
|
9
7
|
redirectURL: string;
|
|
10
8
|
errorRedirectURL?: string;
|
|
11
|
-
clientId: string;
|
|
12
|
-
clientSecret: string;
|
|
13
|
-
keys: AuthKeys;
|
|
14
9
|
}
|
|
15
10
|
declare function initGoogleAuth(props: InitGoogleAuthOptions): {
|
|
16
11
|
GET: (req: next_server.NextRequest) => Promise<next_server.NextResponse<unknown>>;
|