@superfunctions/oauth-router 0.0.1 → 0.1.0
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/browser-routes.d.ts
CHANGED
|
@@ -14,6 +14,12 @@ export interface OAuthBrowserRouteConfig {
|
|
|
14
14
|
resolveCallbackInput?: (request: Request, context: RouteContext) => Promise<Partial<Omit<OAuthFlowCallbackInput, "providerId" | "requestId">>> | Partial<Omit<OAuthFlowCallbackInput, "providerId" | "requestId">>;
|
|
15
15
|
callbackMode?: OAuthBrowserCallbackMode | ((result: OAuthFlowCallbackResult, request: Request, context: RouteContext) => Promise<OAuthBrowserCallbackMode> | OAuthBrowserCallbackMode);
|
|
16
16
|
getRedirectLocation?: (result: OAuthFlowCallbackResult, request: Request, context: RouteContext) => Promise<string> | string;
|
|
17
|
+
/**
|
|
18
|
+
* Additional origins (beyond the request's own origin) that a post-callback
|
|
19
|
+
* redirect is permitted to target. Used to validate `returnTo` and prevent
|
|
20
|
+
* open-redirect attacks. Same-origin redirects are always allowed.
|
|
21
|
+
*/
|
|
22
|
+
allowedRedirectOrigins?: string[];
|
|
17
23
|
serializeCallbackResult?: (result: OAuthFlowCallbackResult, request: Request, context: RouteContext) => Promise<unknown> | unknown;
|
|
18
24
|
routeMeta?: OAuthBrowserRouteMetaOverrides;
|
|
19
25
|
requestIdHeader?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-routes.d.ts","sourceRoot":"","sources":["../src/browser-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,aAAa,EAAoB,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,MAAM,CAAC;AAE3D,MAAM,MAAM,8BAA8B,GAAG;IAC3C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;IACnH,sBAAsB,CAAC,EAAE,CACvB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC;IACtI,oBAAoB,CAAC,EAAE,CACrB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC;IACpJ,YAAY,CAAC,EAAE,wBAAwB,GAAG,CAAC,CACzC,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,CAAC,CAAC;IACnE,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,CACxB,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,SAAS,CAAC,EAAE,8BAA8B,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,GAAG,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"browser-routes.d.ts","sourceRoot":"","sources":["../src/browser-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,aAAa,EAAoB,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,MAAM,CAAC;AAE3D,MAAM,MAAM,8BAA8B,GAAG;IAC3C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;IACnH,sBAAsB,CAAC,EAAE,CACvB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC;IACtI,oBAAoB,CAAC,EAAE,CACrB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC;IACpJ,YAAY,CAAC,EAAE,wBAAwB,GAAG,CAAC,CACzC,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,CAAC,CAAC;IACnE,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC9B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,uBAAuB,CAAC,EAAE,CACxB,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,SAAS,CAAC,EAAE,8BAA8B,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,GAAG,KAAK,EAAE,CAuEjF"}
|
package/dist/browser-routes.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BadRequestError } from "@superfunctions/http";
|
|
2
2
|
export function createOAuthBrowserRoutes(config) {
|
|
3
|
+
assertValidRedirectOrigins(config.allowedRedirectOrigins);
|
|
3
4
|
const requestIdHeader = (config.requestIdHeader ?? "x-request-id").toLowerCase();
|
|
4
5
|
return [
|
|
5
6
|
{
|
|
@@ -62,6 +63,27 @@ export function createOAuthBrowserRoutes(config) {
|
|
|
62
63
|
}
|
|
63
64
|
];
|
|
64
65
|
}
|
|
66
|
+
function assertValidRedirectOrigins(origins) {
|
|
67
|
+
for (const origin of origins ?? []) {
|
|
68
|
+
let parsed;
|
|
69
|
+
try {
|
|
70
|
+
parsed = new URL(origin);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
throw new Error(`OAUTH_ALLOWED_REDIRECT_ORIGIN_INVALID: ${origin}`);
|
|
74
|
+
}
|
|
75
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
76
|
+
throw new Error(`OAUTH_ALLOWED_REDIRECT_ORIGIN_INVALID: ${origin}`);
|
|
77
|
+
}
|
|
78
|
+
if (parsed.username !== "" ||
|
|
79
|
+
parsed.password !== "" ||
|
|
80
|
+
(parsed.pathname !== "" && parsed.pathname !== "/") ||
|
|
81
|
+
parsed.search !== "" ||
|
|
82
|
+
parsed.hash !== "") {
|
|
83
|
+
throw new Error(`OAUTH_ALLOWED_REDIRECT_ORIGIN_INVALID: ${origin}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
65
87
|
function resolveRouteMeta(defaultMeta, overrideMeta) {
|
|
66
88
|
if (!overrideMeta) {
|
|
67
89
|
return defaultMeta;
|
|
@@ -118,13 +140,51 @@ async function resolveCallbackMode(mode, result, request, context) {
|
|
|
118
140
|
}
|
|
119
141
|
async function resolveRedirectLocation(config, result, request, context) {
|
|
120
142
|
if (config.getRedirectLocation) {
|
|
143
|
+
// Caller-provided resolvers are trusted to produce safe locations.
|
|
121
144
|
return config.getRedirectLocation(result, request, context);
|
|
122
145
|
}
|
|
123
146
|
if (result.subject.kind === "browser-auth" && result.subject.returnTo) {
|
|
124
|
-
|
|
147
|
+
// `returnTo` originates from the (unauthenticated) flow start request and
|
|
148
|
+
// is attacker-influenceable, so it must be validated against the current
|
|
149
|
+
// origin and any explicitly allowlisted origins to prevent open redirects.
|
|
150
|
+
return sanitizeRedirectLocation(result.subject.returnTo, request, config.allowedRedirectOrigins);
|
|
125
151
|
}
|
|
126
152
|
return new URL("/", request.url).toString();
|
|
127
153
|
}
|
|
154
|
+
function sanitizeRedirectLocation(returnTo, request, allowedRedirectOrigins) {
|
|
155
|
+
const requestUrl = new URL(request.url);
|
|
156
|
+
const fallback = new URL("/", requestUrl).toString();
|
|
157
|
+
let target;
|
|
158
|
+
try {
|
|
159
|
+
// Resolve relative URLs against the request origin; absolute URLs are
|
|
160
|
+
// parsed as-is so their origin can be checked.
|
|
161
|
+
target = new URL(returnTo, requestUrl);
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
return fallback;
|
|
165
|
+
}
|
|
166
|
+
// Only http(s) targets are ever acceptable (blocks javascript:, data:, etc.).
|
|
167
|
+
if (target.protocol !== "http:" && target.protocol !== "https:") {
|
|
168
|
+
return fallback;
|
|
169
|
+
}
|
|
170
|
+
if (target.origin === requestUrl.origin) {
|
|
171
|
+
return target.toString();
|
|
172
|
+
}
|
|
173
|
+
const allowed = new Set((allowedRedirectOrigins ?? [])
|
|
174
|
+
.map((origin) => {
|
|
175
|
+
try {
|
|
176
|
+
return new URL(origin).origin;
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
})
|
|
182
|
+
.filter((origin) => origin !== null));
|
|
183
|
+
if (allowed.has(target.origin)) {
|
|
184
|
+
return target.toString();
|
|
185
|
+
}
|
|
186
|
+
return fallback;
|
|
187
|
+
}
|
|
128
188
|
async function parseDisconnectBody(request) {
|
|
129
189
|
const body = asJsonObject(await parseJsonBody(request), "disconnect body");
|
|
130
190
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-routes.js","sourceRoot":"","sources":["../src/browser-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-routes.js","sourceRoot":"","sources":["../src/browser-routes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superfunctions/oauth-router",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "Reusable OAuth route factories for Superfunctions",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"access": "public"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@superfunctions/http": "0.
|
|
42
|
-
"@superfunctions/oauth-flow": "0.0
|
|
41
|
+
"@superfunctions/http": "0.2.0",
|
|
42
|
+
"@superfunctions/oauth-flow": "0.1.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@types/node": "^22.0.0",
|