@owlmeans/web-oidc-rp 0.1.1 → 0.1.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/LICENSE +1 -1
- package/build/auth/plugins/oidc-client.d.ts.map +1 -1
- package/build/auth/plugins/oidc-client.js +4 -0
- package/build/auth/plugins/oidc-client.js.map +1 -1
- package/build/guard.d.ts +3 -2
- package/build/guard.d.ts.map +1 -1
- package/build/guard.js +5 -4
- package/build/guard.js.map +1 -1
- package/build/service.d.ts.map +1 -1
- package/build/service.js +12 -3
- package/build/service.js.map +1 -1
- package/build/types.d.ts +6 -0
- package/build/types.d.ts.map +1 -1
- package/package.json +15 -14
- package/src/auth/plugins/oidc-client.tsx +4 -0
- package/src/guard.ts +13 -10
- package/src/service.ts +13 -3
- package/src/types.ts +7 -0
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2026 OwlMeans Common — Fullstack typescript framework
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oidc-client.d.ts","sourceRoot":"","sources":["../../../src/auth/plugins/oidc-client.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAajF,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"oidc-client.d.ts","sourceRoot":"","sources":["../../../src/auth/plugins/oidc-client.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAajF,eAAO,MAAM,gBAAgB,EAAE,oBAuG9B,CAAA"}
|
|
@@ -56,8 +56,11 @@ export const oidcClientPlugin = {
|
|
|
56
56
|
// 1. Initialize OIDC server side authentication
|
|
57
57
|
const oidc = context.service(DEFAULT_ALIAS);
|
|
58
58
|
// @TODO we need to provide an identity provider client as entityId here for flexibel usage
|
|
59
|
+
const flow = await control.flow();
|
|
60
|
+
const state = await flow?.state();
|
|
59
61
|
const _source = await oidc.proceedToRedirectUrl({
|
|
60
62
|
purpose: control.source ?? OidcAuthPurposes.Unknown,
|
|
63
|
+
simplified: state?.payload().simplified,
|
|
61
64
|
uid: 'uid' in module.params ? `${module.params.uid}` : undefined,
|
|
62
65
|
alias: module.alias
|
|
63
66
|
});
|
|
@@ -78,6 +81,7 @@ export const oidcClientPlugin = {
|
|
|
78
81
|
const envelope = makeEnvelopeModel(control.allowance?.challenge, EnvelopeKind.Wrap);
|
|
79
82
|
const challenge = envelope.message(true);
|
|
80
83
|
const parts = challenge.split(':http');
|
|
84
|
+
// This thing includes url with flow state so the OIDC redirect it back a correct way
|
|
81
85
|
const url = 'http' + parts[1];
|
|
82
86
|
// 2. Include additional parameters (control state with allowance to flow state)
|
|
83
87
|
await control.persist();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oidc-client.js","sourceRoot":"","sources":["../../../src/auth/plugins/oidc-client.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oidc-client.js","sourceRoot":"","sources":["../../../src/auth/plugins/oidc-client.tsx"],"names":[],"mappings":"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"}
|
package/build/guard.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { CommonModule } from '@owlmeans/module';
|
|
1
2
|
import type { OidcGuardOptions } from '@owlmeans/oidc';
|
|
3
|
+
import type { ParametrisedProps } from '@owlmeans/web-client';
|
|
2
4
|
import type { Config, Context } from './types.js';
|
|
3
|
-
import type { CommonModule } from '@owlmeans/module';
|
|
4
5
|
export declare const appendOidcGuard: <C extends Config, T extends Context<C>>(context: T, opts?: OidcGuardOptions) => T;
|
|
5
|
-
export declare const setupOidcGuard: (modules: CommonModule[], coguards?: string | string[]) => void;
|
|
6
|
+
export declare const setupOidcGuard: (modules: CommonModule[], coguards?: string | string[], extras?: Partial<ParametrisedProps>) => void;
|
|
6
7
|
//# sourceMappingURL=guard.d.ts.map
|
package/build/guard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAMtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAI7D,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEjD,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EACpE,SAAS,CAAC,EAAE,OAAO,gBAAgB,MAOpC,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,SAAS,YAAY,EAAE,EAAE,WAAW,MAAM,GAAG,MAAM,EAAE,EAAE,SAAS,OAAO,CAAC,iBAAiB,CAAC,SAQxH,CAAA"}
|
package/build/guard.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { appendOidcGuard as appendBasicOidcGuard, setupOidcGuard as setupBasicOidcGuard, DISPATCHER_OIDC, DISPATCHER_OIDC_INIT } from '@owlmeans/oidc';
|
|
2
|
-
import { elevate } from '@owlmeans/web-client';
|
|
3
1
|
import { DISPATCHER } from '@owlmeans/auth';
|
|
4
2
|
import { handler } from '@owlmeans/client';
|
|
3
|
+
import { appendOidcGuard as appendBasicOidcGuard, DISPATCHER_OIDC, DISPATCHER_OIDC_INIT, setupOidcGuard as setupBasicOidcGuard } from '@owlmeans/oidc';
|
|
4
|
+
import { elevate, parametriseDispatcher } from '@owlmeans/web-client';
|
|
5
5
|
import { Dispatcher } from './components/dispatcher.js';
|
|
6
6
|
import { makeOidcAuthService } from './service.js';
|
|
7
7
|
export const appendOidcGuard = (context, opts) => {
|
|
@@ -9,10 +9,11 @@ export const appendOidcGuard = (context, opts) => {
|
|
|
9
9
|
const ctx = appendBasicOidcGuard(context, opts);
|
|
10
10
|
return ctx;
|
|
11
11
|
};
|
|
12
|
-
export const setupOidcGuard = (modules, coguards) => {
|
|
12
|
+
export const setupOidcGuard = (modules, coguards, extras) => {
|
|
13
|
+
const DispatcherCom = extras ? parametriseDispatcher(extras, Dispatcher) : Dispatcher;
|
|
13
14
|
setupBasicOidcGuard(modules, coguards);
|
|
14
15
|
elevate(modules, DISPATCHER_OIDC_INIT);
|
|
15
16
|
elevate(modules, DISPATCHER_OIDC);
|
|
16
|
-
elevate(modules, DISPATCHER, handler(
|
|
17
|
+
elevate(modules, DISPATCHER, handler(DispatcherCom), { force: true });
|
|
17
18
|
};
|
|
18
19
|
//# sourceMappingURL=guard.js.map
|
package/build/guard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAG1C,OAAO,EACL,eAAe,IAAI,oBAAoB,EACvC,eAAe,EAAE,oBAAoB,EACrC,cAAc,IAAI,mBAAmB,EACtC,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAU,EAAE,IAAuB,EACnC,EAAE;IACF,OAAO,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAE9C,MAAM,GAAG,GAAG,oBAAoB,CAAO,OAAO,EAAE,IAAI,CAAC,CAAA;IAErD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAuB,EAAE,QAA4B,EAAE,MAAmC,EAAE,EAAE;IAC3H,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IAErF,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAEtC,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;IACtC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IACjC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AACvE,CAAC,CAAA"}
|
package/build/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,eAAe,EAAmB,MAAM,YAAY,CAAA;AAenF,eAAO,MAAM,mBAAmB,GAAI,QAAO,MAAsB,KAAG,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,eAAe,EAAmB,MAAM,YAAY,CAAA;AAenF,eAAO,MAAM,mBAAmB,GAAI,QAAO,MAAsB,KAAG,eA+InE,CAAA"}
|
package/build/service.js
CHANGED
|
@@ -53,8 +53,11 @@ export const makeOidcAuthService = (alias = DEFAULT_ALIAS) => {
|
|
|
53
53
|
}
|
|
54
54
|
params.entity ??= state.entityId;
|
|
55
55
|
const ctx = service.assertCtx();
|
|
56
|
-
|
|
56
|
+
let [redirectTo] = await ctx.module(DISPATCHER_OIDC_INIT)
|
|
57
57
|
.call({ body: params });
|
|
58
|
+
if (flow.payload().simplified === 'true') {
|
|
59
|
+
redirectTo += '&simplified=true';
|
|
60
|
+
}
|
|
58
61
|
const context = service.assertCtx();
|
|
59
62
|
await store(context).save({ id: storeKey, authUrl: redirectTo });
|
|
60
63
|
return redirectTo;
|
|
@@ -67,11 +70,17 @@ export const makeOidcAuthService = (alias = DEFAULT_ALIAS) => {
|
|
|
67
70
|
throw new UnknownFlow('oidc.dispatch');
|
|
68
71
|
}
|
|
69
72
|
const authorityTransition = flowModel.next();
|
|
70
|
-
flowModel.transit(authorityTransition.transition, true, {
|
|
73
|
+
flowModel.transit(authorityTransition.transition, true, {
|
|
74
|
+
purpose: extras.purpose,
|
|
75
|
+
simplified: extras.simplified,
|
|
76
|
+
});
|
|
71
77
|
// @TODO I'm not sure that this dirty hack is a correct approach
|
|
72
78
|
if (extras.alias === HOME) {
|
|
73
79
|
const redirectTransition = flowModel.next();
|
|
74
|
-
flowModel.transit(redirectTransition.transition, true, {
|
|
80
|
+
flowModel.transit(redirectTransition.transition, true, {
|
|
81
|
+
purpose: extras.purpose,
|
|
82
|
+
simplified: extras.simplified
|
|
83
|
+
});
|
|
75
84
|
}
|
|
76
85
|
const redirectUrl = await flow.proceed({ params: { uid: extras.uid } }, true);
|
|
77
86
|
return redirectUrl;
|
package/build/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/build/types.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { OIDCAuthInitParams, WithSharedConfig } from '@owlmeans/oidc';
|
|
|
4
4
|
import type { OidcAuthPurposes } from './consts.js';
|
|
5
5
|
import type { FlowModel, FlowPayload } from '@owlmeans/flow';
|
|
6
6
|
import type { ResourceRecord } from '@owlmeans/resource';
|
|
7
|
+
import type { AuthToken } from '@owlmeans/auth';
|
|
7
8
|
export interface OidcAuthService extends InitializedService {
|
|
8
9
|
dispatch: (params: Record<string, string>) => Promise<boolean>;
|
|
9
10
|
authenticate: (flow: FlowModel, params: OIDCAuthInitParams) => Promise<string | null>;
|
|
@@ -12,9 +13,14 @@ export interface OidcAuthService extends InitializedService {
|
|
|
12
13
|
}
|
|
13
14
|
export interface OidcAuthRedirectExtras extends FlowPayload {
|
|
14
15
|
purpose: OidcAuthPurposes;
|
|
16
|
+
simplified?: string;
|
|
15
17
|
uid?: string;
|
|
16
18
|
alias?: string;
|
|
17
19
|
}
|
|
20
|
+
export interface OidcPostAuthPayload extends FlowPayload, AuthToken {
|
|
21
|
+
purpose: OidcAuthPurposes;
|
|
22
|
+
simplified?: string;
|
|
23
|
+
}
|
|
18
24
|
export interface Config extends AppConfig, WithSharedConfig {
|
|
19
25
|
}
|
|
20
26
|
export interface Context<C extends Config = Config> extends AppContext<C> {
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAE9D,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAGrF,oBAAoB,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAGzE,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACxC;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,OAAO,EAAE,gBAAgB,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW,EAAG,SAAS;IAClE,OAAO,EAAE,gBAAgB,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,MAAO,SAAQ,SAAS,EAAE,gBAAgB;CAAI;AAE/D,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;CAAI;AAE7E,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,OAAO,EAAE,MAAM,CAAA;CAChB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/web-oidc-rp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"license": "MIT",
|
|
4
5
|
"type": "module",
|
|
5
6
|
"scripts": {
|
|
6
7
|
"build": "tsc -b",
|
|
@@ -27,19 +28,19 @@
|
|
|
27
28
|
}
|
|
28
29
|
},
|
|
29
30
|
"dependencies": {
|
|
30
|
-
"@owlmeans/auth": "^0.1.
|
|
31
|
-
"@owlmeans/basic-envelope": "^0.1.
|
|
32
|
-
"@owlmeans/client": "^0.1.
|
|
33
|
-
"@owlmeans/client-auth": "^0.1.
|
|
34
|
-
"@owlmeans/client-flow": "^0.1.
|
|
35
|
-
"@owlmeans/client-i18n": "^0.1.
|
|
36
|
-
"@owlmeans/context": "^0.1.
|
|
37
|
-
"@owlmeans/flow": "^0.1.
|
|
38
|
-
"@owlmeans/module": "^0.1.
|
|
39
|
-
"@owlmeans/oidc": "^0.1.
|
|
40
|
-
"@owlmeans/resource": "^0.1.
|
|
41
|
-
"@owlmeans/web-client": "^0.1.
|
|
42
|
-
"@owlmeans/web-flow": "^0.1.
|
|
31
|
+
"@owlmeans/auth": "^0.1.2",
|
|
32
|
+
"@owlmeans/basic-envelope": "^0.1.2",
|
|
33
|
+
"@owlmeans/client": "^0.1.2",
|
|
34
|
+
"@owlmeans/client-auth": "^0.1.2",
|
|
35
|
+
"@owlmeans/client-flow": "^0.1.2",
|
|
36
|
+
"@owlmeans/client-i18n": "^0.1.2",
|
|
37
|
+
"@owlmeans/context": "^0.1.2",
|
|
38
|
+
"@owlmeans/flow": "^0.1.2",
|
|
39
|
+
"@owlmeans/module": "^0.1.2",
|
|
40
|
+
"@owlmeans/oidc": "^0.1.2",
|
|
41
|
+
"@owlmeans/resource": "^0.1.2",
|
|
42
|
+
"@owlmeans/web-client": "^0.1.2",
|
|
43
|
+
"@owlmeans/web-flow": "^0.1.2",
|
|
43
44
|
"oidc-client-ts": "^3.1.0"
|
|
44
45
|
},
|
|
45
46
|
"peerDependencies": {
|
|
@@ -67,8 +67,11 @@ export const oidcClientPlugin: AuthenticationPlugin = {
|
|
|
67
67
|
const oidc = context.service<OidcAuthService>(DEFAULT_ALIAS)
|
|
68
68
|
|
|
69
69
|
// @TODO we need to provide an identity provider client as entityId here for flexibel usage
|
|
70
|
+
const flow = await control.flow()
|
|
71
|
+
const state = await flow?.state()
|
|
70
72
|
const _source = await oidc.proceedToRedirectUrl({
|
|
71
73
|
purpose: control.source as OidcAuthPurposes ?? OidcAuthPurposes.Unknown,
|
|
74
|
+
simplified: state?.payload().simplified as string,
|
|
72
75
|
uid: 'uid' in module.params ? `${module.params.uid}` : undefined,
|
|
73
76
|
alias: module.alias
|
|
74
77
|
})
|
|
@@ -90,6 +93,7 @@ export const oidcClientPlugin: AuthenticationPlugin = {
|
|
|
90
93
|
const envelope = makeEnvelopeModel(control.allowance?.challenge, EnvelopeKind.Wrap)
|
|
91
94
|
const challenge = envelope.message<string>(true)
|
|
92
95
|
const parts = challenge.split(':http')
|
|
96
|
+
// This thing includes url with flow state so the OIDC redirect it back a correct way
|
|
93
97
|
const url = 'http' + parts[1]
|
|
94
98
|
|
|
95
99
|
// 2. Include additional parameters (control state with allowance to flow state)
|
package/src/guard.ts
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { DISPATCHER } from '@owlmeans/auth'
|
|
2
|
+
import { handler } from '@owlmeans/client'
|
|
3
3
|
import type { CommonModule } from '@owlmeans/module'
|
|
4
|
+
import type { OidcGuardOptions } from '@owlmeans/oidc'
|
|
4
5
|
import {
|
|
5
6
|
appendOidcGuard as appendBasicOidcGuard,
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
DISPATCHER_OIDC, DISPATCHER_OIDC_INIT,
|
|
8
|
+
setupOidcGuard as setupBasicOidcGuard
|
|
8
9
|
} from '@owlmeans/oidc'
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { handler } from '@owlmeans/client'
|
|
10
|
+
import type { ParametrisedProps } from '@owlmeans/web-client'
|
|
11
|
+
import { elevate, parametriseDispatcher } from '@owlmeans/web-client'
|
|
12
12
|
import { Dispatcher } from './components/dispatcher.js'
|
|
13
13
|
import { makeOidcAuthService } from './service.js'
|
|
14
|
+
import type { Config, Context } from './types.js'
|
|
14
15
|
|
|
15
16
|
export const appendOidcGuard = <C extends Config, T extends Context<C>>(
|
|
16
17
|
context: T, opts?: OidcGuardOptions
|
|
@@ -18,14 +19,16 @@ export const appendOidcGuard = <C extends Config, T extends Context<C>>(
|
|
|
18
19
|
context.registerService(makeOidcAuthService())
|
|
19
20
|
|
|
20
21
|
const ctx = appendBasicOidcGuard<C, T>(context, opts)
|
|
21
|
-
|
|
22
|
+
|
|
22
23
|
return ctx
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
export const setupOidcGuard = (modules: CommonModule[], coguards?: string | string[]) => {
|
|
26
|
+
export const setupOidcGuard = (modules: CommonModule[], coguards?: string | string[], extras?: Partial<ParametrisedProps>) => {
|
|
27
|
+
const DispatcherCom = extras ? parametriseDispatcher(extras, Dispatcher) : Dispatcher
|
|
28
|
+
|
|
26
29
|
setupBasicOidcGuard(modules, coguards)
|
|
27
30
|
|
|
28
31
|
elevate(modules, DISPATCHER_OIDC_INIT)
|
|
29
32
|
elevate(modules, DISPATCHER_OIDC)
|
|
30
|
-
elevate(modules, DISPATCHER, handler(
|
|
33
|
+
elevate(modules, DISPATCHER, handler(DispatcherCom), { force: true })
|
|
31
34
|
}
|
package/src/service.ts
CHANGED
|
@@ -72,8 +72,12 @@ export const makeOidcAuthService = (alias: string = DEFAULT_ALIAS): OidcAuthServ
|
|
|
72
72
|
|
|
73
73
|
const ctx = service.assertCtx<Config, Context>()
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
let [redirectTo] = await ctx.module<Module<string>>(DISPATCHER_OIDC_INIT)
|
|
76
76
|
.call({ body: params })
|
|
77
|
+
|
|
78
|
+
if (flow.payload().simplified === 'true') {
|
|
79
|
+
redirectTo += '&simplified=true'
|
|
80
|
+
}
|
|
77
81
|
|
|
78
82
|
const context = service.assertCtx<Config, Context>()
|
|
79
83
|
await store(context).save({ id: storeKey, authUrl: redirectTo })
|
|
@@ -91,12 +95,18 @@ export const makeOidcAuthService = (alias: string = DEFAULT_ALIAS): OidcAuthServ
|
|
|
91
95
|
}
|
|
92
96
|
|
|
93
97
|
const authorityTransition = flowModel.next()
|
|
94
|
-
flowModel.transit(authorityTransition.transition, true, {
|
|
98
|
+
flowModel.transit(authorityTransition.transition, true, {
|
|
99
|
+
purpose: extras.purpose,
|
|
100
|
+
simplified: extras.simplified,
|
|
101
|
+
})
|
|
95
102
|
|
|
96
103
|
// @TODO I'm not sure that this dirty hack is a correct approach
|
|
97
104
|
if (extras.alias === HOME) {
|
|
98
105
|
const redirectTransition = flowModel.next()
|
|
99
|
-
flowModel.transit(redirectTransition.transition, true, {
|
|
106
|
+
flowModel.transit(redirectTransition.transition, true, {
|
|
107
|
+
purpose: extras.purpose,
|
|
108
|
+
simplified: extras.simplified
|
|
109
|
+
})
|
|
100
110
|
}
|
|
101
111
|
|
|
102
112
|
const redirectUrl = await flow.proceed({ params: { uid: extras.uid } }, true)
|
package/src/types.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { OIDCAuthInitParams, WithSharedConfig } from '@owlmeans/oidc'
|
|
|
4
4
|
import type { OidcAuthPurposes } from './consts.js'
|
|
5
5
|
import type { FlowModel, FlowPayload } from '@owlmeans/flow'
|
|
6
6
|
import type { ResourceRecord } from '@owlmeans/resource'
|
|
7
|
+
import type { AuthToken } from '@owlmeans/auth'
|
|
7
8
|
|
|
8
9
|
export interface OidcAuthService extends InitializedService {
|
|
9
10
|
dispatch: (params: Record<string, string>) => Promise<boolean>
|
|
@@ -19,10 +20,16 @@ export interface OidcAuthService extends InitializedService {
|
|
|
19
20
|
|
|
20
21
|
export interface OidcAuthRedirectExtras extends FlowPayload {
|
|
21
22
|
purpose: OidcAuthPurposes
|
|
23
|
+
simplified?: string
|
|
22
24
|
uid?: string
|
|
23
25
|
alias?: string
|
|
24
26
|
}
|
|
25
27
|
|
|
28
|
+
export interface OidcPostAuthPayload extends FlowPayload , AuthToken {
|
|
29
|
+
purpose: OidcAuthPurposes
|
|
30
|
+
simplified?: string
|
|
31
|
+
}
|
|
32
|
+
|
|
26
33
|
export interface Config extends AppConfig, WithSharedConfig { }
|
|
27
34
|
|
|
28
35
|
export interface Context<C extends Config = Config> extends AppContext<C> { }
|