@absolutejs/auth 0.69.6 → 0.71.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/README.md +15 -1
- package/dist/authContext.d.ts +10 -1
- package/dist/client/index.js +69 -18
- package/dist/client/index.js.map +3 -3
- package/dist/client/mobile.d.ts +11 -0
- package/dist/client/mobile.js +69 -18
- package/dist/client/mobile.js.map +3 -3
- package/dist/index.d.ts +23 -4
- package/dist/index.js +92 -65
- package/dist/index.js.map +7 -6
- package/dist/server.d.ts +1 -0
- package/dist/server.js +92 -65
- package/dist/server.js.map +8 -7
- package/dist/syncBridge.d.ts +22 -0
- package/package.json +1 -1
package/dist/server.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export { createPostgresSetupSessionStore } from './portal/postgresSetupSessionSt
|
|
|
16
16
|
export { protectRoutePlugin } from './routes/protectRoute';
|
|
17
17
|
export { readSessionCookie } from './session/cookieReader';
|
|
18
18
|
export { requireAuthPlugin } from './routes/requireAuth';
|
|
19
|
+
export { createAbsoluteAuthSyncBridge, type AbsoluteAuthSyncBridge, type AbsoluteAuthSyncContext } from './syncBridge';
|
|
19
20
|
export type { ScimConfig } from './scim/config';
|
|
20
21
|
export type { ScimFilter, ScimGroup, ScimGroupInput, ScimTokenStore, ScimUser, ScimUserInput } from './scim/types';
|
|
21
22
|
export { createPostgresScimTokenStore } from './scim/postgresScimTokenStore';
|
package/dist/server.js
CHANGED
|
@@ -5771,6 +5771,75 @@ var stepUpPlugin = ({
|
|
|
5771
5771
|
})
|
|
5772
5772
|
})).as("global");
|
|
5773
5773
|
|
|
5774
|
+
// src/oidc/socketTickets.ts
|
|
5775
|
+
init_crypto();
|
|
5776
|
+
var DEFAULT_SOCKET_TICKET_TTL_MS = 30000;
|
|
5777
|
+
var TICKET_BYTES = 32;
|
|
5778
|
+
var consumeSocketTicket = async ({
|
|
5779
|
+
audience,
|
|
5780
|
+
getUser,
|
|
5781
|
+
now = Date.now(),
|
|
5782
|
+
store,
|
|
5783
|
+
ticket
|
|
5784
|
+
}) => {
|
|
5785
|
+
const record = await store.consumeTicket(await hashToken(ticket), now);
|
|
5786
|
+
if (!record || record.audience !== audience)
|
|
5787
|
+
return;
|
|
5788
|
+
const user = await getUser(record.subject);
|
|
5789
|
+
if (user === null)
|
|
5790
|
+
return;
|
|
5791
|
+
return {
|
|
5792
|
+
audience: record.audience,
|
|
5793
|
+
clientId: record.clientId,
|
|
5794
|
+
kind: "access-token",
|
|
5795
|
+
scopes: [...record.scopes],
|
|
5796
|
+
subject: record.subject,
|
|
5797
|
+
user
|
|
5798
|
+
};
|
|
5799
|
+
};
|
|
5800
|
+
var issueSocketTicket = async ({
|
|
5801
|
+
audience,
|
|
5802
|
+
clientId,
|
|
5803
|
+
now = Date.now(),
|
|
5804
|
+
scopes,
|
|
5805
|
+
store,
|
|
5806
|
+
subject,
|
|
5807
|
+
ttlMs = DEFAULT_SOCKET_TICKET_TTL_MS
|
|
5808
|
+
}) => {
|
|
5809
|
+
if (!Number.isFinite(ttlMs) || ttlMs <= 0)
|
|
5810
|
+
throw new Error("socketTicketTtlMs must be positive");
|
|
5811
|
+
const ticket = `ast_${generateSecureToken(TICKET_BYTES)}`;
|
|
5812
|
+
await store.saveTicket({
|
|
5813
|
+
audience,
|
|
5814
|
+
clientId,
|
|
5815
|
+
expiresAt: now + ttlMs,
|
|
5816
|
+
scopes: [...scopes],
|
|
5817
|
+
subject,
|
|
5818
|
+
ticketHash: await hashToken(ticket)
|
|
5819
|
+
});
|
|
5820
|
+
return { expiresInMs: ttlMs, ticket };
|
|
5821
|
+
};
|
|
5822
|
+
|
|
5823
|
+
// src/syncBridge.ts
|
|
5824
|
+
var toSyncContext = (authPrincipal) => authPrincipal ? { authPrincipal, user: authPrincipal.user } : undefined;
|
|
5825
|
+
var createAbsoluteAuthSyncBridge = (accessTokens) => ({
|
|
5826
|
+
consumeSocketTicket: async ({ audience, ticket }) => {
|
|
5827
|
+
const store = accessTokens.oidc.socketTicketStore;
|
|
5828
|
+
if (!store)
|
|
5829
|
+
return;
|
|
5830
|
+
return toSyncContext(await consumeSocketTicket({
|
|
5831
|
+
audience: audience ?? accessTokens.oidc.issuer,
|
|
5832
|
+
getUser: accessTokens.getUser,
|
|
5833
|
+
store,
|
|
5834
|
+
ticket
|
|
5835
|
+
}));
|
|
5836
|
+
},
|
|
5837
|
+
resolveBearer: async ({ authorization }) => toSyncContext(await resolveAccessTokenPrincipal({
|
|
5838
|
+
authorization,
|
|
5839
|
+
config: accessTokens
|
|
5840
|
+
}))
|
|
5841
|
+
});
|
|
5842
|
+
|
|
5774
5843
|
// src/authContext.ts
|
|
5775
5844
|
var createAuthContext = ({
|
|
5776
5845
|
agentAuth,
|
|
@@ -5779,19 +5848,27 @@ var createAuthContext = ({
|
|
|
5779
5848
|
authorization,
|
|
5780
5849
|
emit,
|
|
5781
5850
|
seedSource
|
|
5782
|
-
}) =>
|
|
5783
|
-
|
|
5784
|
-
|
|
5785
|
-
|
|
5786
|
-
|
|
5787
|
-
|
|
5788
|
-
|
|
5789
|
-
|
|
5790
|
-
|
|
5791
|
-
|
|
5792
|
-
|
|
5793
|
-
|
|
5794
|
-
|
|
5851
|
+
}) => {
|
|
5852
|
+
const absoluteAuthSync = accessTokens ? createAbsoluteAuthSyncBridge(accessTokens) : undefined;
|
|
5853
|
+
const syncBridge = new Elysia8({
|
|
5854
|
+
name: "@absolutejs/auth/sync-bridge",
|
|
5855
|
+
seed: pluginDependencySeed(seedSource)
|
|
5856
|
+
}).decorate("absoluteAuthSync", absoluteAuthSync).as("global");
|
|
5857
|
+
return new Elysia8({
|
|
5858
|
+
name: "@absolutejs/auth/context",
|
|
5859
|
+
seed: pluginDependencySeed(seedSource)
|
|
5860
|
+
}).use([
|
|
5861
|
+
syncBridge,
|
|
5862
|
+
protectRoutePlugin({ accessTokens, authSessionStore }),
|
|
5863
|
+
stepUpPlugin({ authSessionStore }),
|
|
5864
|
+
authorization ? protectPermissionPlugin({
|
|
5865
|
+
...authorization,
|
|
5866
|
+
authSessionStore,
|
|
5867
|
+
emit
|
|
5868
|
+
}) : new Elysia8,
|
|
5869
|
+
agentAuthContextPlugin(agentAuth)
|
|
5870
|
+
]);
|
|
5871
|
+
};
|
|
5795
5872
|
|
|
5796
5873
|
// src/compliance/routes.ts
|
|
5797
5874
|
import { Elysia as Elysia9, t as t6 } from "elysia";
|
|
@@ -9406,57 +9483,6 @@ var updateRegisteredClient = async ({
|
|
|
9406
9483
|
|
|
9407
9484
|
// src/oidc/socketTicketRoutes.ts
|
|
9408
9485
|
import { Elysia as Elysia22, t as t15 } from "elysia";
|
|
9409
|
-
|
|
9410
|
-
// src/oidc/socketTickets.ts
|
|
9411
|
-
init_crypto();
|
|
9412
|
-
var DEFAULT_SOCKET_TICKET_TTL_MS = 30000;
|
|
9413
|
-
var TICKET_BYTES = 32;
|
|
9414
|
-
var consumeSocketTicket = async ({
|
|
9415
|
-
audience,
|
|
9416
|
-
getUser,
|
|
9417
|
-
now = Date.now(),
|
|
9418
|
-
store,
|
|
9419
|
-
ticket
|
|
9420
|
-
}) => {
|
|
9421
|
-
const record = await store.consumeTicket(await hashToken(ticket), now);
|
|
9422
|
-
if (!record || record.audience !== audience)
|
|
9423
|
-
return;
|
|
9424
|
-
const user = await getUser(record.subject);
|
|
9425
|
-
if (user === null)
|
|
9426
|
-
return;
|
|
9427
|
-
return {
|
|
9428
|
-
audience: record.audience,
|
|
9429
|
-
clientId: record.clientId,
|
|
9430
|
-
kind: "access-token",
|
|
9431
|
-
scopes: [...record.scopes],
|
|
9432
|
-
subject: record.subject,
|
|
9433
|
-
user
|
|
9434
|
-
};
|
|
9435
|
-
};
|
|
9436
|
-
var issueSocketTicket = async ({
|
|
9437
|
-
audience,
|
|
9438
|
-
clientId,
|
|
9439
|
-
now = Date.now(),
|
|
9440
|
-
scopes,
|
|
9441
|
-
store,
|
|
9442
|
-
subject,
|
|
9443
|
-
ttlMs = DEFAULT_SOCKET_TICKET_TTL_MS
|
|
9444
|
-
}) => {
|
|
9445
|
-
if (!Number.isFinite(ttlMs) || ttlMs <= 0)
|
|
9446
|
-
throw new Error("socketTicketTtlMs must be positive");
|
|
9447
|
-
const ticket = `ast_${generateSecureToken(TICKET_BYTES)}`;
|
|
9448
|
-
await store.saveTicket({
|
|
9449
|
-
audience,
|
|
9450
|
-
clientId,
|
|
9451
|
-
expiresAt: now + ttlMs,
|
|
9452
|
-
scopes: [...scopes],
|
|
9453
|
-
subject,
|
|
9454
|
-
ticketHash: await hashToken(ticket)
|
|
9455
|
-
});
|
|
9456
|
-
return { expiresInMs: ttlMs, ticket };
|
|
9457
|
-
};
|
|
9458
|
-
|
|
9459
|
-
// src/oidc/socketTicketRoutes.ts
|
|
9460
9486
|
var noStoreJson = (value, status) => new Response(JSON.stringify(value), {
|
|
9461
9487
|
headers: {
|
|
9462
9488
|
"cache-control": "no-store",
|
|
@@ -41383,9 +41409,10 @@ export {
|
|
|
41383
41409
|
createPostgresScimTokenStore,
|
|
41384
41410
|
createNodeSamlAdapter,
|
|
41385
41411
|
createAuthContext,
|
|
41412
|
+
createAbsoluteAuthSyncBridge,
|
|
41386
41413
|
auth2 as auth,
|
|
41387
41414
|
VerificationProviderError
|
|
41388
41415
|
};
|
|
41389
41416
|
|
|
41390
|
-
//# debugId=
|
|
41417
|
+
//# debugId=A98DDD902DA1838664756E2164756E21
|
|
41391
41418
|
//# sourceMappingURL=server.js.map
|