@gauts/auth 0.10.0 → 0.10.2
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/README.md +6 -2
- package/dist/adapters/next/index.d.ts +1 -6
- package/dist/adapters/next/index.d.ts.map +1 -1
- package/dist/adapters/next/index.js +2 -36
- package/dist/adapters/next/index.js.map +1 -1
- package/dist/headers/index.d.ts +7 -0
- package/dist/headers/index.d.ts.map +1 -0
- package/dist/headers/index.js +37 -0
- package/dist/headers/index.js.map +1 -0
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# `@gauts/auth`
|
|
2
2
|
|
|
3
|
+
[](https://bundlephobia.com/package/@gauts/auth)
|
|
4
|
+
[](https://bundlephobia.com/package/@gauts/auth)
|
|
5
|
+
|
|
3
6
|
Database-backed password authentication, opaque browser sessions, and optional social authentication for Node.js applications.
|
|
4
7
|
|
|
5
8
|
`@gauts/auth` provides password hashing, session lifecycle, secure cookies, database validation, optional short caching, Prisma or Drizzle persistence, Hono/Express/Fastify integration, and Google/GitHub/X OAuth. The application keeps control of credential lookup, business-specific registration data, authorization, responses, and UI.
|
|
@@ -306,6 +309,7 @@ The application owns the redirect URL. When `unauthorizedUrl` is provided, the a
|
|
|
306
309
|
| `@gauts/auth/express` | Express cookies, methods, and middleware. |
|
|
307
310
|
| `@gauts/auth/fastify` | Fastify cookies, methods, decorators, and hooks. |
|
|
308
311
|
| `@gauts/auth/next` | Next.js renewal scheduling and `Set-Cookie` forwarding. |
|
|
312
|
+
| `@gauts/auth/headers` | Browser-safe controlled header forwarding helpers. |
|
|
309
313
|
| `@gauts/auth/providers` | Google, GitHub, and X OAuth providers. |
|
|
310
314
|
|
|
311
315
|
## Configuration reference
|
|
@@ -1237,10 +1241,10 @@ Result values:
|
|
|
1237
1241
|
|
|
1238
1242
|
The adapter forwards only the session cookie and controlled client/origin headers required by the private API. `__ctx` is not forwarded because the API renewal endpoint always validates the opaque token through the database and returns a new signed context. Other cookies, authorization headers, and arbitrary headers are not forwarded.
|
|
1239
1243
|
|
|
1240
|
-
`buildForwardHeaders()` and `FORWARD_HEADERS` are exported from `@gauts/auth/
|
|
1244
|
+
`buildForwardHeaders()` and `FORWARD_HEADERS` are exported from the browser-safe `@gauts/auth/headers` entrypoint for application fetchers that need the same controlled forwarding rules:
|
|
1241
1245
|
|
|
1242
1246
|
```ts
|
|
1243
|
-
import { buildForwardHeaders } from "@gauts/auth/
|
|
1247
|
+
import { buildForwardHeaders } from "@gauts/auth/headers";
|
|
1244
1248
|
|
|
1245
1249
|
const headers = buildForwardHeaders({
|
|
1246
1250
|
headers: incoming,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NextResponse, type NextRequest } from "next/server.js";
|
|
2
|
+
export { buildForwardHeaders, FORWARD_HEADERS, type BuildForwardHeadersInput, } from "../../headers/index.js";
|
|
2
3
|
export type NextCookieConfig = {
|
|
3
4
|
contextName?: string;
|
|
4
5
|
sessionName?: string;
|
|
@@ -20,11 +21,5 @@ export type NextRenewResult = {
|
|
|
20
21
|
export type NextAuth = {
|
|
21
22
|
renew(input: NextRenewInput): Promise<NextRenewResult>;
|
|
22
23
|
};
|
|
23
|
-
export type BuildForwardHeadersInput = {
|
|
24
|
-
extra?: readonly string[];
|
|
25
|
-
headers: Headers;
|
|
26
|
-
};
|
|
27
|
-
export declare const FORWARD_HEADERS: readonly ["accept-language", "cf-connecting-ip", "origin", "referer", "sec-ch-ua", "sec-ch-ua-mobile", "sec-ch-ua-platform", "sec-fetch-dest", "sec-fetch-mode", "sec-fetch-site", "sec-fetch-user", "true-client-ip", "user-agent", "x-forwarded-for", "x-forwarded-host", "x-forwarded-port", "x-forwarded-proto", "x-real-ip"];
|
|
28
|
-
export declare const buildForwardHeaders: ({ extra, headers: incoming, }: BuildForwardHeadersInput) => Headers;
|
|
29
24
|
export declare const createNextAuth: ({ cookie, renewUrl }: NextAuthConfig) => NextAuth;
|
|
30
25
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/next/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/next/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAOhE,OAAO,EACH,mBAAmB,EACnB,eAAe,EACf,KAAK,wBAAwB,GAChC,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,gBAAgB,GAAG;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC1D,CAAC;AA2CF,eAAO,MAAM,cAAc,GAAI,sBAAsB,cAAc,KAAG,QAsErE,CAAC"}
|
|
@@ -1,44 +1,10 @@
|
|
|
1
1
|
import { NextResponse } from "next/server.js";
|
|
2
2
|
import { createError } from "../../errors.js";
|
|
3
|
+
import { buildForwardHeaders } from "../../headers/index.js";
|
|
3
4
|
import { parseSessionToken, resolveSessionCookieNames } from "../../session/cookie.js";
|
|
4
5
|
import { parseSessionState } from "../../session/state.js";
|
|
6
|
+
export { buildForwardHeaders, FORWARD_HEADERS, } from "../../headers/index.js";
|
|
5
7
|
const RENEW_TIMEOUT = 5_000;
|
|
6
|
-
export const FORWARD_HEADERS = [
|
|
7
|
-
"accept-language",
|
|
8
|
-
"cf-connecting-ip",
|
|
9
|
-
"origin",
|
|
10
|
-
"referer",
|
|
11
|
-
"sec-ch-ua",
|
|
12
|
-
"sec-ch-ua-mobile",
|
|
13
|
-
"sec-ch-ua-platform",
|
|
14
|
-
"sec-fetch-dest",
|
|
15
|
-
"sec-fetch-mode",
|
|
16
|
-
"sec-fetch-site",
|
|
17
|
-
"sec-fetch-user",
|
|
18
|
-
"true-client-ip",
|
|
19
|
-
"user-agent",
|
|
20
|
-
"x-forwarded-for",
|
|
21
|
-
"x-forwarded-host",
|
|
22
|
-
"x-forwarded-port",
|
|
23
|
-
"x-forwarded-proto",
|
|
24
|
-
"x-real-ip",
|
|
25
|
-
];
|
|
26
|
-
export const buildForwardHeaders = ({ extra = [], headers: incoming, }) => {
|
|
27
|
-
const headers = new Headers();
|
|
28
|
-
for (const name of [...FORWARD_HEADERS, ...extra]) {
|
|
29
|
-
const value = incoming.get(name);
|
|
30
|
-
if (value?.trim()) {
|
|
31
|
-
headers.set(name, value);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
const origin = headers.get("origin")?.trim();
|
|
35
|
-
const host = headers.get("x-forwarded-host")?.trim();
|
|
36
|
-
const proto = headers.get("x-forwarded-proto")?.trim();
|
|
37
|
-
if (!origin && host && proto) {
|
|
38
|
-
headers.set("origin", `${proto}://${host}`);
|
|
39
|
-
}
|
|
40
|
-
return headers;
|
|
41
|
-
};
|
|
42
8
|
const getSetCookies = (headers) => {
|
|
43
9
|
const cookieHeaders = headers;
|
|
44
10
|
if (typeof cookieHeaders.getSetCookie === "function") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/next/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/next/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type BuildForwardHeadersInput = {
|
|
2
|
+
extra?: readonly string[];
|
|
3
|
+
headers: Headers;
|
|
4
|
+
};
|
|
5
|
+
export declare const FORWARD_HEADERS: readonly ["accept-language", "cf-connecting-ip", "origin", "referer", "sec-ch-ua", "sec-ch-ua-mobile", "sec-ch-ua-platform", "sec-fetch-dest", "sec-fetch-mode", "sec-fetch-site", "sec-fetch-user", "true-client-ip", "user-agent", "x-forwarded-for", "x-forwarded-host", "x-forwarded-port", "x-forwarded-proto", "x-real-ip"];
|
|
6
|
+
export declare const buildForwardHeaders: ({ extra, headers: incoming, }: BuildForwardHeadersInput) => Headers;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/headers/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAAG;IACnC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,eAAe,mUAmBlB,CAAC;AAEX,eAAO,MAAM,mBAAmB,GAAI,+BAGjC,wBAAwB,KAAG,OAoB7B,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export const FORWARD_HEADERS = [
|
|
2
|
+
"accept-language",
|
|
3
|
+
"cf-connecting-ip",
|
|
4
|
+
"origin",
|
|
5
|
+
"referer",
|
|
6
|
+
"sec-ch-ua",
|
|
7
|
+
"sec-ch-ua-mobile",
|
|
8
|
+
"sec-ch-ua-platform",
|
|
9
|
+
"sec-fetch-dest",
|
|
10
|
+
"sec-fetch-mode",
|
|
11
|
+
"sec-fetch-site",
|
|
12
|
+
"sec-fetch-user",
|
|
13
|
+
"true-client-ip",
|
|
14
|
+
"user-agent",
|
|
15
|
+
"x-forwarded-for",
|
|
16
|
+
"x-forwarded-host",
|
|
17
|
+
"x-forwarded-port",
|
|
18
|
+
"x-forwarded-proto",
|
|
19
|
+
"x-real-ip",
|
|
20
|
+
];
|
|
21
|
+
export const buildForwardHeaders = ({ extra = [], headers: incoming, }) => {
|
|
22
|
+
const headers = new Headers();
|
|
23
|
+
for (const name of [...FORWARD_HEADERS, ...extra]) {
|
|
24
|
+
const value = incoming.get(name);
|
|
25
|
+
if (value?.trim()) {
|
|
26
|
+
headers.set(name, value);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const origin = headers.get("origin")?.trim();
|
|
30
|
+
const host = headers.get("x-forwarded-host")?.trim();
|
|
31
|
+
const proto = headers.get("x-forwarded-proto")?.trim();
|
|
32
|
+
if (!origin && host && proto) {
|
|
33
|
+
headers.set("origin", `${proto}://${host}`);
|
|
34
|
+
}
|
|
35
|
+
return headers;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/headers/index.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,iBAAiB;IACjB,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,WAAW;IACX,kBAAkB;IAClB,oBAAoB;IACpB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,WAAW;CACL,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAChC,KAAK,GAAG,EAAE,EACV,OAAO,EAAE,QAAQ,GACM,EAAW,EAAE;IACpC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,eAAe,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC;IAEvD,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,MAAM,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gauts/auth",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.2",
|
|
4
4
|
"description": "Database-backed password, session, and social authentication for Node.js.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GVALFER",
|
|
@@ -68,6 +68,10 @@
|
|
|
68
68
|
"types": "./dist/adapters/next/index.d.ts",
|
|
69
69
|
"import": "./dist/adapters/next/index.js"
|
|
70
70
|
},
|
|
71
|
+
"./headers": {
|
|
72
|
+
"types": "./dist/headers/index.d.ts",
|
|
73
|
+
"import": "./dist/headers/index.js"
|
|
74
|
+
},
|
|
71
75
|
"./providers": {
|
|
72
76
|
"types": "./dist/providers/index.d.ts",
|
|
73
77
|
"import": "./dist/providers/index.js"
|