@sphereon/ssi-sdk.siopv2-oid4vp-rp-rest-api 0.32.1-feature.VDX.341.57 → 0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187
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/siop-api-functions.d.ts.map +1 -1
- package/dist/siop-api-functions.js +7 -2
- package/dist/siop-api-functions.js.map +1 -1
- package/dist/siopv2-rp-api-server.d.ts.map +1 -1
- package/dist/siopv2-rp-api-server.js +5 -4
- package/dist/siopv2-rp-api-server.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/webapp-api-functions.d.ts +1 -0
- package/dist/webapp-api-functions.d.ts.map +1 -1
- package/dist/webapp-api-functions.js +38 -14
- package/dist/webapp-api-functions.js.map +1 -1
- package/package.json +14 -14
- package/src/siop-api-functions.ts +12 -2
- package/src/siopv2-rp-api-server.ts +2 -1
- package/src/types.ts +2 -1
- package/src/webapp-api-functions.ts +37 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siop-api-functions.d.ts","sourceRoot":"","sources":["../src/siop-api-functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,8BAA8B,EAAE,MAAM,yBAAyB,CAAA;AACtG,OAAO,EAAa,mBAAmB,EAAqB,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"siop-api-functions.d.ts","sourceRoot":"","sources":["../src/siop-api-functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,8BAA8B,EAAE,MAAM,yBAAyB,CAAA;AACtG,OAAO,EAAa,mBAAmB,EAAqB,MAAM,+BAA+B,CAAA;AAGjG,OAAO,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAsC1C,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,IAAI,CAAC,EAAE,mBAAmB,GAAG;IAAE,8BAA8B,CAAC,EAAE,8BAA8B,CAAA;CAAE,QAuEjG;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,mBAAmB,QAiDjH"}
|
|
@@ -38,7 +38,7 @@ const parseAuthorizationResponse = (request) => {
|
|
|
38
38
|
}
|
|
39
39
|
return payload;
|
|
40
40
|
}
|
|
41
|
-
throw new Error(`Unsupported content type: ${contentType}`);
|
|
41
|
+
throw new Error(`Unsupported content type: ${contentType}. Currently only application/x-www-form-urlencoded and application/json (for direct_post) are supported`);
|
|
42
42
|
};
|
|
43
43
|
function verifyAuthResponseSIOPv2Endpoint(router, context, opts) {
|
|
44
44
|
var _a;
|
|
@@ -84,8 +84,13 @@ function verifyAuthResponseSIOPv2Endpoint(router, context, opts) {
|
|
|
84
84
|
// const credentialSubject = wrappedPresentation.presentation.verifiableCredential[0]?.credential?.credentialSubject
|
|
85
85
|
// console.log(JSON.stringify(credentialSubject, null, 2))
|
|
86
86
|
console.log('PRESENTATION:' + JSON.stringify(wrappedPresentation.presentation, null, 2));
|
|
87
|
-
const responseRedirectURI = yield context.agent.siopGetRedirectURI({ correlationId, definitionId, state: verifiedResponse.state });
|
|
88
87
|
response.statusCode = 200;
|
|
88
|
+
const authorizationChallengeValidationResponse = { presentation_during_issuance_session: verifiedResponse.correlationId };
|
|
89
|
+
if (authorizationResponse.is_first_party) {
|
|
90
|
+
response.setHeader('Content-Type', 'application/json');
|
|
91
|
+
return response.send(JSON.stringify(authorizationChallengeValidationResponse));
|
|
92
|
+
}
|
|
93
|
+
const responseRedirectURI = yield context.agent.siopGetRedirectURI({ correlationId, definitionId, state: verifiedResponse.state });
|
|
89
94
|
if (responseRedirectURI) {
|
|
90
95
|
response.setHeader('Content-Type', 'application/json');
|
|
91
96
|
return response.send(JSON.stringify({ redirect_uri: responseRedirectURI }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siop-api-functions.js","sourceRoot":"","sources":["../src/siop-api-functions.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"siop-api-functions.js","sourceRoot":"","sources":["../src/siop-api-functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siopv2-rp-api-server.d.ts","sourceRoot":"","sources":["../src/siopv2-rp-api-server.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAGhE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAsB;gBAEjC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAAC,cAAc,EAAE,cAAc,CAAC;QAAC,IAAI,CAAC,EAAE,oBAAoB,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"siopv2-rp-api-server.d.ts","sourceRoot":"","sources":["../src/siopv2-rp-api-server.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAGhE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAsB;gBAEjC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAAC,cAAc,EAAE,cAAc,CAAC;QAAC,IAAI,CAAC,EAAE,oBAAoB,CAAA;KAAE;IAgClH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,KAAK,IAAI,MAAM,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAErD;IAED,IAAI,IAAI,IAAI,oBAAoB,GAAG,SAAS,CAE3C;CACF"}
|
|
@@ -11,7 +11,7 @@ const siop_api_functions_1 = require("./siop-api-functions");
|
|
|
11
11
|
const webapp_api_functions_1 = require("./webapp-api-functions");
|
|
12
12
|
class SIOPv2RPApiServer {
|
|
13
13
|
constructor(args) {
|
|
14
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
14
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
15
15
|
const { agent, opts } = args;
|
|
16
16
|
this._agent = agent;
|
|
17
17
|
(0, ssi_express_support_1.copyGlobalAuthToEndpoints)({ opts, keys: ['webappCreateAuthRequest', 'webappAuthStatus', 'webappDeleteAuthRequest'] });
|
|
@@ -29,13 +29,14 @@ class SIOPv2RPApiServer {
|
|
|
29
29
|
(0, webapp_api_functions_1.createAuthRequestWebappEndpoint)(this._router, context, (_d = opts === null || opts === void 0 ? void 0 : opts.endpointOpts) === null || _d === void 0 ? void 0 : _d.webappCreateAuthRequest);
|
|
30
30
|
(0, webapp_api_functions_1.authStatusWebappEndpoint)(this._router, context, (_e = opts === null || opts === void 0 ? void 0 : opts.endpointOpts) === null || _e === void 0 ? void 0 : _e.webappAuthStatus);
|
|
31
31
|
(0, webapp_api_functions_1.removeAuthRequestStateWebappEndpoint)(this._router, context, (_f = opts === null || opts === void 0 ? void 0 : opts.endpointOpts) === null || _f === void 0 ? void 0 : _f.webappDeleteAuthRequest);
|
|
32
|
+
(0, webapp_api_functions_1.getDefinitionsEndpoint)(this._router, context, (_g = opts === null || opts === void 0 ? void 0 : opts.endpointOpts) === null || _g === void 0 ? void 0 : _g.webappGetDefinitions);
|
|
32
33
|
}
|
|
33
34
|
// SIOPv2 endpoints
|
|
34
35
|
if (features.includes('siop')) {
|
|
35
|
-
(0, siop_api_functions_1.getAuthRequestSIOPv2Endpoint)(this._router, context, (
|
|
36
|
-
(0, siop_api_functions_1.verifyAuthResponseSIOPv2Endpoint)(this._router, context, (
|
|
36
|
+
(0, siop_api_functions_1.getAuthRequestSIOPv2Endpoint)(this._router, context, (_h = opts === null || opts === void 0 ? void 0 : opts.endpointOpts) === null || _h === void 0 ? void 0 : _h.siopGetAuthRequest);
|
|
37
|
+
(0, siop_api_functions_1.verifyAuthResponseSIOPv2Endpoint)(this._router, context, (_j = opts === null || opts === void 0 ? void 0 : opts.endpointOpts) === null || _j === void 0 ? void 0 : _j.siopVerifyAuthResponse);
|
|
37
38
|
}
|
|
38
|
-
this._express.use((
|
|
39
|
+
this._express.use((_l = (_k = opts === null || opts === void 0 ? void 0 : opts.endpointOpts) === null || _k === void 0 ? void 0 : _k.basePath) !== null && _l !== void 0 ? _l : '', this.router);
|
|
39
40
|
}
|
|
40
41
|
get express() {
|
|
41
42
|
return this._express;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siopv2-rp-api-server.js","sourceRoot":"","sources":["../src/siopv2-rp-api-server.ts"],"names":[],"mappings":";;;;;;AAAA,yDAAqD;AACrD,uEAAyF;AAIzF,sDAAkD;AAClD,6DAAqG;AAErG,
|
|
1
|
+
{"version":3,"file":"siopv2-rp-api-server.js","sourceRoot":"","sources":["../src/siopv2-rp-api-server.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface ISIOPv2RPRestAPIOpts {
|
|
|
13
13
|
};
|
|
14
14
|
webappCreateAuthRequest?: ICreateAuthRequestWebappEndpointOpts;
|
|
15
15
|
webappDeleteAuthRequest?: ISingleEndpointOpts;
|
|
16
|
+
webappGetDefinitions?: ISingleEndpointOpts;
|
|
16
17
|
webappAuthStatus?: ISingleEndpointOpts;
|
|
17
18
|
siopVerifyAuthResponse?: ISingleEndpointOpts;
|
|
18
19
|
siopGetAuthRequest?: ISingleEndpointOpts;
|
|
@@ -22,7 +23,7 @@ export interface ICreateAuthRequestWebappEndpointOpts extends ISingleEndpointOpt
|
|
|
22
23
|
siopBaseURI?: string;
|
|
23
24
|
webappAuthStatusPath?: string;
|
|
24
25
|
webappBaseURI?: string;
|
|
25
|
-
|
|
26
|
+
responseRedirectURI?: string;
|
|
26
27
|
}
|
|
27
28
|
export type IRequiredPlugins = ICredentialVerifier & ISIOPv2RP & IPresentationExchange & IPDManager;
|
|
28
29
|
export type IRequiredContext = IAgentContext<IRequiredPlugins>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAEzD,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,MAAM,CAAA;AAC/C,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAA;IAC/B,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,eAAe,GAAG;YAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;QAChE,uBAAuB,CAAC,EAAE,oCAAoC,CAAA;QAC9D,uBAAuB,CAAC,EAAE,mBAAmB,CAAA;QAC7C,gBAAgB,CAAC,EAAE,mBAAmB,CAAA;QACtC,sBAAsB,CAAC,EAAE,mBAAmB,CAAA;QAC5C,kBAAkB,CAAC,EAAE,mBAAmB,CAAA;KACzC,CAAA;CACF;AACD,MAAM,WAAW,oCAAqC,SAAQ,mBAAmB;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAEzD,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,MAAM,CAAA;AAC/C,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAA;IAC/B,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,eAAe,GAAG;YAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;QAChE,uBAAuB,CAAC,EAAE,oCAAoC,CAAA;QAC9D,uBAAuB,CAAC,EAAE,mBAAmB,CAAA;QAC7C,oBAAoB,CAAC,EAAE,mBAAmB,CAAA;QAC1C,gBAAgB,CAAC,EAAE,mBAAmB,CAAA;QACtC,sBAAsB,CAAC,EAAE,mBAAmB,CAAA;QAC5C,kBAAkB,CAAC,EAAE,mBAAmB,CAAA;KACzC,CAAA;CACF;AACD,MAAM,WAAW,oCAAqC,SAAQ,mBAAmB;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,SAAS,GAAG,qBAAqB,GAAG,UAAU,CAAA;AACnG,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAA"}
|
|
@@ -4,4 +4,5 @@ import { ICreateAuthRequestWebappEndpointOpts, IRequiredContext } from './types'
|
|
|
4
4
|
export declare function createAuthRequestWebappEndpoint(router: Router, context: IRequiredContext, opts?: ICreateAuthRequestWebappEndpointOpts): void;
|
|
5
5
|
export declare function authStatusWebappEndpoint(router: Router, context: IRequiredContext, opts?: ISingleEndpointOpts): void;
|
|
6
6
|
export declare function removeAuthRequestStateWebappEndpoint(router: Router, context: IRequiredContext, opts?: ISingleEndpointOpts): void;
|
|
7
|
+
export declare function getDefinitionsEndpoint(router: Router, context: IRequiredContext, opts?: ISingleEndpointOpts): void;
|
|
7
8
|
//# sourceMappingURL=webapp-api-functions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webapp-api-functions.d.ts","sourceRoot":"","sources":["../src/webapp-api-functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,mBAAmB,EAAqB,MAAM,+BAA+B,CAAA;AAGjG,OAAO,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,EAAE,oCAAoC,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"webapp-api-functions.d.ts","sourceRoot":"","sources":["../src/webapp-api-functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,mBAAmB,EAAqB,MAAM,+BAA+B,CAAA;AAGjG,OAAO,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,EAAE,oCAAoC,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAKhF,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,oCAAoC,QA8CrI;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,mBAAmB,QA2E7G;AAED,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,mBAAmB,QAoBzH;AAGD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,mBAAmB,QAe3G"}
|
|
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.createAuthRequestWebappEndpoint = createAuthRequestWebappEndpoint;
|
|
16
16
|
exports.authStatusWebappEndpoint = authStatusWebappEndpoint;
|
|
17
17
|
exports.removeAuthRequestStateWebappEndpoint = removeAuthRequestStateWebappEndpoint;
|
|
18
|
+
exports.getDefinitionsEndpoint = getDefinitionsEndpoint;
|
|
18
19
|
const did_auth_siop_1 = require("@sphereon/did-auth-siop");
|
|
19
20
|
const ssi_express_support_1 = require("@sphereon/ssi-express-support");
|
|
20
21
|
const ssi_sdk_siopv2_oid4vp_common_1 = require("@sphereon/ssi-sdk.siopv2-oid4vp-common");
|
|
@@ -29,28 +30,33 @@ function createAuthRequestWebappEndpoint(router, context, opts) {
|
|
|
29
30
|
}
|
|
30
31
|
const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/webapp/definitions/:definitionId/auth-requests';
|
|
31
32
|
router.post(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
32
|
-
var _a;
|
|
33
|
+
var _a, _b, _c, _d;
|
|
33
34
|
try {
|
|
34
35
|
// if (!request.agent) throw Error('No agent configured')
|
|
35
36
|
const definitionId = request.params.definitionId;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
if (!definitionId) {
|
|
38
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No definitionId query parameter provided');
|
|
39
|
+
}
|
|
40
|
+
const state = (_a = request.body.state) !== null && _a !== void 0 ? _a : short_uuid_1.default.uuid();
|
|
41
|
+
const correlationId = (_b = request.body.correlationId) !== null && _b !== void 0 ? _b : state;
|
|
42
|
+
const requestByReferenceURI = (0, ssi_sdk_siopv2_oid4vp_common_1.uriWithBase)(`/siop/definitions/${definitionId}/auth-requests/${state}`, {
|
|
39
43
|
baseURI: opts === null || opts === void 0 ? void 0 : opts.siopBaseURI,
|
|
40
44
|
});
|
|
41
|
-
const responseURI = (0, ssi_sdk_siopv2_oid4vp_common_1.uriWithBase)(`/siop/definitions/${definitionId}/auth-responses/${
|
|
42
|
-
|
|
45
|
+
const responseURI = (0, ssi_sdk_siopv2_oid4vp_common_1.uriWithBase)(`/siop/definitions/${definitionId}/auth-responses/${state}`, { baseURI: opts === null || opts === void 0 ? void 0 : opts.siopBaseURI });
|
|
46
|
+
// first version is for backwards compat
|
|
47
|
+
const responseRedirectURI = (_c = ('response_redirect_uri' in request.body && request.body.response_redirect_uri)) !== null && _c !== void 0 ? _c : ('responseRedirectURI' in request.body && request.body.responseRedirectURI);
|
|
43
48
|
const authRequestURI = yield context.agent.siopCreateAuthRequestURI(Object.assign({ definitionId,
|
|
44
49
|
correlationId,
|
|
45
|
-
state, nonce:
|
|
50
|
+
state, nonce: short_uuid_1.default.uuid(), requestByReferenceURI, responseURIType: 'response_uri', responseURI }, (responseRedirectURI && { responseRedirectURI })));
|
|
46
51
|
const authRequestBody = {
|
|
47
52
|
correlationId,
|
|
53
|
+
state,
|
|
48
54
|
definitionId,
|
|
49
55
|
authRequestURI,
|
|
50
|
-
authStatusURI: `${(0, ssi_sdk_siopv2_oid4vp_common_1.uriWithBase)((
|
|
56
|
+
authStatusURI: `${(0, ssi_sdk_siopv2_oid4vp_common_1.uriWithBase)((_d = opts === null || opts === void 0 ? void 0 : opts.webappAuthStatusPath) !== null && _d !== void 0 ? _d : '/webapp/auth-status', { baseURI: opts === null || opts === void 0 ? void 0 : opts.webappBaseURI })}`,
|
|
51
57
|
};
|
|
52
58
|
console.log(`Auth Request URI data to send back: ${JSON.stringify(authRequestBody)}`);
|
|
53
|
-
return response.
|
|
59
|
+
return response.json(authRequestBody);
|
|
54
60
|
}
|
|
55
61
|
catch (error) {
|
|
56
62
|
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, 'Could not create an authorization request URI', error);
|
|
@@ -87,7 +93,7 @@ function authStatusWebappEndpoint(router, context, opts) {
|
|
|
87
93
|
definitionId,
|
|
88
94
|
lastUpdated: requestState ? requestState.lastUpdated : Date.now(),
|
|
89
95
|
};
|
|
90
|
-
return response.
|
|
96
|
+
return response.json(statusBody);
|
|
91
97
|
}
|
|
92
98
|
let includeVerifiedData = ssi_sdk_siopv2_oid4vp_rp_auth_1.VerifiedDataMode.NONE;
|
|
93
99
|
if ('includeVerifiedData' in request.body) {
|
|
@@ -110,13 +116,13 @@ function authStatusWebappEndpoint(router, context, opts) {
|
|
|
110
116
|
verifiedData: responseState.verifiedData,
|
|
111
117
|
}
|
|
112
118
|
: {}));
|
|
113
|
-
console.
|
|
119
|
+
console.debug(`Will send auth status: ${JSON.stringify(statusBody)}`);
|
|
114
120
|
if (overallState.status === 'error') {
|
|
115
121
|
response.statusCode = 500;
|
|
116
|
-
return response.
|
|
122
|
+
return response.json(statusBody);
|
|
117
123
|
}
|
|
118
124
|
response.statusCode = 200;
|
|
119
|
-
return response.
|
|
125
|
+
return response.json(statusBody);
|
|
120
126
|
}
|
|
121
127
|
catch (error) {
|
|
122
128
|
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, error.message, error);
|
|
@@ -139,7 +145,25 @@ function removeAuthRequestStateWebappEndpoint(router, context, opts) {
|
|
|
139
145
|
return (0, ssi_express_support_1.sendErrorResponse)(response, 404, 'No authorization request could be found');
|
|
140
146
|
}
|
|
141
147
|
response.statusCode = 200;
|
|
142
|
-
return response.
|
|
148
|
+
return response.json(yield context.agent.siopDeleteAuthState({ definitionId, correlationId }));
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, error.message, error);
|
|
152
|
+
}
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
function getDefinitionsEndpoint(router, context, opts) {
|
|
156
|
+
var _a;
|
|
157
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
|
|
158
|
+
console.log(`getDefinitions Webapp endpoint is disabled`);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/webapp/definitions';
|
|
162
|
+
router.get(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
163
|
+
try {
|
|
164
|
+
const definitions = yield context.agent.pdmGetDefinitions();
|
|
165
|
+
response.statusCode = 200;
|
|
166
|
+
return response.json(definitions);
|
|
143
167
|
}
|
|
144
168
|
catch (error) {
|
|
145
169
|
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, error.message, error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webapp-api-functions.js","sourceRoot":"","sources":["../src/webapp-api-functions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"webapp-api-functions.js","sourceRoot":"","sources":["../src/webapp-api-functions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.siopv2-oid4vp-rp-rest-api",
|
|
3
|
-
"version": "0.32.1-feature.
|
|
3
|
+
"version": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
"start:dev": "ts-node __tests__/RestAPI.ts"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@sphereon/did-auth-siop": "0.16.1-feature.
|
|
15
|
-
"@sphereon/ssi-express-support": "0.32.1-feature.
|
|
16
|
-
"@sphereon/ssi-sdk.core": "0.32.1-feature.
|
|
17
|
-
"@sphereon/ssi-sdk.credential-validation": "0.32.1-feature.
|
|
18
|
-
"@sphereon/ssi-sdk.kv-store-temp": "0.32.1-feature.
|
|
19
|
-
"@sphereon/ssi-sdk.pd-manager": "0.32.1-feature.
|
|
20
|
-
"@sphereon/ssi-sdk.presentation-exchange": "0.32.1-feature.
|
|
21
|
-
"@sphereon/ssi-sdk.siopv2-oid4vp-common": "0.32.1-feature.
|
|
22
|
-
"@sphereon/ssi-sdk.siopv2-oid4vp-rp-auth": "0.32.1-feature.
|
|
23
|
-
"@sphereon/ssi-types": "0.32.1-feature.
|
|
14
|
+
"@sphereon/did-auth-siop": "0.16.1-feature.IATAB2B.52.345",
|
|
15
|
+
"@sphereon/ssi-express-support": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
|
|
16
|
+
"@sphereon/ssi-sdk.core": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
|
|
17
|
+
"@sphereon/ssi-sdk.credential-validation": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
|
|
18
|
+
"@sphereon/ssi-sdk.kv-store-temp": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
|
|
19
|
+
"@sphereon/ssi-sdk.pd-manager": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
|
|
20
|
+
"@sphereon/ssi-sdk.presentation-exchange": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
|
|
21
|
+
"@sphereon/ssi-sdk.siopv2-oid4vp-common": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
|
|
22
|
+
"@sphereon/ssi-sdk.siopv2-oid4vp-rp-auth": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
|
|
23
|
+
"@sphereon/ssi-types": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
|
|
24
24
|
"@veramo/core": "4.2.0",
|
|
25
25
|
"@veramo/credential-w3c": "4.2.0",
|
|
26
26
|
"body-parser": "^1.20.2",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"@sphereon/pex": "5.0.0-unstable.28",
|
|
39
39
|
"@sphereon/pex-models": "^2.3.2",
|
|
40
40
|
"@sphereon/ssi-sdk-ext.did-provider-jwk": "0.27.0",
|
|
41
|
-
"@sphereon/ssi-sdk.data-store": "0.32.1-feature.
|
|
42
|
-
"@sphereon/ssi-sdk.vc-handler-ld-local": "0.32.1-feature.
|
|
41
|
+
"@sphereon/ssi-sdk.data-store": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
|
|
42
|
+
"@sphereon/ssi-sdk.vc-handler-ld-local": "0.32.1-feature.oid4vp.rest.api.improv.bootcamp.187+cb1cb474",
|
|
43
43
|
"@types/body-parser": "^1.19.5",
|
|
44
44
|
"@types/cookie-parser": "^1.4.7",
|
|
45
45
|
"@types/cors": "^2.8.17",
|
|
@@ -98,5 +98,5 @@
|
|
|
98
98
|
"Authenticator"
|
|
99
99
|
],
|
|
100
100
|
"nx": {},
|
|
101
|
-
"gitHead": "
|
|
101
|
+
"gitHead": "cb1cb474f6b670933f9bd5ea40da9dc421d5585f"
|
|
102
102
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AuthorizationResponsePayload, PresentationDefinitionLocation } from '@sphereon/did-auth-siop'
|
|
2
2
|
import { checkAuth, ISingleEndpointOpts, sendErrorResponse } from '@sphereon/ssi-express-support'
|
|
3
3
|
import { CredentialMapper } from '@sphereon/ssi-types'
|
|
4
|
+
import { AuthorizationChallengeValidationResponse } from '@sphereon/ssi-sdk.siopv2-oid4vp-common'
|
|
4
5
|
import { Request, Response, Router } from 'express'
|
|
5
6
|
import { IRequiredContext } from './types'
|
|
6
7
|
|
|
@@ -35,7 +36,9 @@ const parseAuthorizationResponse = (request: Request): AuthorizationResponsePayl
|
|
|
35
36
|
return payload
|
|
36
37
|
}
|
|
37
38
|
|
|
38
|
-
throw new Error(
|
|
39
|
+
throw new Error(
|
|
40
|
+
`Unsupported content type: ${contentType}. Currently only application/x-www-form-urlencoded and application/json (for direct_post) are supported`,
|
|
41
|
+
)
|
|
39
42
|
}
|
|
40
43
|
|
|
41
44
|
export function verifyAuthResponseSIOPv2Endpoint(
|
|
@@ -87,8 +90,15 @@ export function verifyAuthResponseSIOPv2Endpoint(
|
|
|
87
90
|
// const credentialSubject = wrappedPresentation.presentation.verifiableCredential[0]?.credential?.credentialSubject
|
|
88
91
|
// console.log(JSON.stringify(credentialSubject, null, 2))
|
|
89
92
|
console.log('PRESENTATION:' + JSON.stringify(wrappedPresentation.presentation, null, 2))
|
|
90
|
-
const responseRedirectURI = await context.agent.siopGetRedirectURI({ correlationId, definitionId, state: verifiedResponse.state })
|
|
91
93
|
response.statusCode = 200
|
|
94
|
+
|
|
95
|
+
const authorizationChallengeValidationResponse: AuthorizationChallengeValidationResponse = { presentation_during_issuance_session: verifiedResponse.correlationId }
|
|
96
|
+
if (authorizationResponse.is_first_party) {
|
|
97
|
+
response.setHeader('Content-Type', 'application/json')
|
|
98
|
+
return response.send(JSON.stringify(authorizationChallengeValidationResponse))
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const responseRedirectURI = await context.agent.siopGetRedirectURI({ correlationId, definitionId, state: verifiedResponse.state })
|
|
92
102
|
if (responseRedirectURI) {
|
|
93
103
|
response.setHeader('Content-Type', 'application/json')
|
|
94
104
|
return response.send(JSON.stringify({ redirect_uri: responseRedirectURI }))
|
|
@@ -6,7 +6,7 @@ import { TAgent } from '@veramo/core'
|
|
|
6
6
|
import express, { Express, Router } from 'express'
|
|
7
7
|
import { getAuthRequestSIOPv2Endpoint, verifyAuthResponseSIOPv2Endpoint } from './siop-api-functions'
|
|
8
8
|
import { IRequiredPlugins, ISIOPv2RPRestAPIOpts } from './types'
|
|
9
|
-
import {
|
|
9
|
+
import {authStatusWebappEndpoint, createAuthRequestWebappEndpoint, getDefinitionsEndpoint, removeAuthRequestStateWebappEndpoint} from './webapp-api-functions'
|
|
10
10
|
|
|
11
11
|
export class SIOPv2RPApiServer {
|
|
12
12
|
private readonly _express: Express
|
|
@@ -35,6 +35,7 @@ export class SIOPv2RPApiServer {
|
|
|
35
35
|
createAuthRequestWebappEndpoint(this._router, context, opts?.endpointOpts?.webappCreateAuthRequest)
|
|
36
36
|
authStatusWebappEndpoint(this._router, context, opts?.endpointOpts?.webappAuthStatus)
|
|
37
37
|
removeAuthRequestStateWebappEndpoint(this._router, context, opts?.endpointOpts?.webappDeleteAuthRequest)
|
|
38
|
+
getDefinitionsEndpoint(this._router, context, opts?.endpointOpts?.webappGetDefinitions)
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
// SIOPv2 endpoints
|
package/src/types.ts
CHANGED
|
@@ -12,6 +12,7 @@ export interface ISIOPv2RPRestAPIOpts {
|
|
|
12
12
|
globalAuth?: GenericAuthArgs & { secureSiopEndpoints?: boolean }
|
|
13
13
|
webappCreateAuthRequest?: ICreateAuthRequestWebappEndpointOpts // Override the create Auth Request path. Needs to contain correlationId and definitionId path params!
|
|
14
14
|
webappDeleteAuthRequest?: ISingleEndpointOpts // Override the delete Auth Request path. Needs to contain correlationId and definitionId path params!
|
|
15
|
+
webappGetDefinitions?: ISingleEndpointOpts // Override the delete Auth Request path. Needs to contain correlationId and definitionId path params!
|
|
15
16
|
webappAuthStatus?: ISingleEndpointOpts // Override the Auth status path. CorrelationId and definitionId need to come from the body!
|
|
16
17
|
siopVerifyAuthResponse?: ISingleEndpointOpts // Override the siop Verify Response path. Needs to contain correlationId and definitionId path params!
|
|
17
18
|
siopGetAuthRequest?: ISingleEndpointOpts // Override the siop get Auth Request path. Needs to contain correlationId and definitionId path params!
|
|
@@ -21,7 +22,7 @@ export interface ICreateAuthRequestWebappEndpointOpts extends ISingleEndpointOpt
|
|
|
21
22
|
siopBaseURI?: string
|
|
22
23
|
webappAuthStatusPath?: string
|
|
23
24
|
webappBaseURI?: string
|
|
24
|
-
|
|
25
|
+
responseRedirectURI?: string
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
export type IRequiredPlugins = ICredentialVerifier & ISIOPv2RP & IPresentationExchange & IPDManager
|
|
@@ -7,6 +7,8 @@ import uuid from 'short-uuid'
|
|
|
7
7
|
import { ICreateAuthRequestWebappEndpointOpts, IRequiredContext } from './types'
|
|
8
8
|
import { shaHasher as defaultHasher } from '@sphereon/ssi-sdk.core'
|
|
9
9
|
|
|
10
|
+
|
|
11
|
+
|
|
10
12
|
export function createAuthRequestWebappEndpoint(router: Router, context: IRequiredContext, opts?: ICreateAuthRequestWebappEndpointOpts) {
|
|
11
13
|
if (opts?.enabled === false) {
|
|
12
14
|
console.log(`createAuthRequest Webapp endpoint is disabled`)
|
|
@@ -17,20 +19,24 @@ export function createAuthRequestWebappEndpoint(router: Router, context: IRequir
|
|
|
17
19
|
try {
|
|
18
20
|
// if (!request.agent) throw Error('No agent configured')
|
|
19
21
|
const definitionId = request.params.definitionId
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
if (!definitionId) {
|
|
23
|
+
return sendErrorResponse(response, 400, 'No definitionId query parameter provided')
|
|
24
|
+
}
|
|
25
|
+
const state: string = request.body.state ?? uuid.uuid()
|
|
26
|
+
const correlationId = request.body.correlationId ?? state
|
|
22
27
|
|
|
23
|
-
const requestByReferenceURI = uriWithBase(`/siop/definitions/${definitionId}/auth-requests/${
|
|
28
|
+
const requestByReferenceURI = uriWithBase(`/siop/definitions/${definitionId}/auth-requests/${state}`, {
|
|
24
29
|
baseURI: opts?.siopBaseURI,
|
|
25
30
|
})
|
|
26
|
-
const responseURI = uriWithBase(`/siop/definitions/${definitionId}/auth-responses/${
|
|
27
|
-
|
|
31
|
+
const responseURI = uriWithBase(`/siop/definitions/${definitionId}/auth-responses/${state}`, { baseURI: opts?.siopBaseURI })
|
|
32
|
+
// first version is for backwards compat
|
|
33
|
+
const responseRedirectURI = ('response_redirect_uri' in request.body && (request.body.response_redirect_uri as string | undefined)) ?? ('responseRedirectURI' in request.body && (request.body.responseRedirectURI as string | undefined))
|
|
28
34
|
|
|
29
35
|
const authRequestURI = await context.agent.siopCreateAuthRequestURI({
|
|
30
36
|
definitionId,
|
|
31
37
|
correlationId,
|
|
32
38
|
state,
|
|
33
|
-
nonce:
|
|
39
|
+
nonce: uuid.uuid(),
|
|
34
40
|
requestByReferenceURI,
|
|
35
41
|
responseURIType: 'response_uri',
|
|
36
42
|
responseURI,
|
|
@@ -38,12 +44,13 @@ export function createAuthRequestWebappEndpoint(router: Router, context: IRequir
|
|
|
38
44
|
})
|
|
39
45
|
const authRequestBody: GenerateAuthRequestURIResponse = {
|
|
40
46
|
correlationId,
|
|
47
|
+
state,
|
|
41
48
|
definitionId,
|
|
42
49
|
authRequestURI,
|
|
43
50
|
authStatusURI: `${uriWithBase(opts?.webappAuthStatusPath ?? '/webapp/auth-status', { baseURI: opts?.webappBaseURI })}`,
|
|
44
51
|
}
|
|
45
52
|
console.log(`Auth Request URI data to send back: ${JSON.stringify(authRequestBody)}`)
|
|
46
|
-
return response.
|
|
53
|
+
return response.json(authRequestBody)
|
|
47
54
|
} catch (error) {
|
|
48
55
|
return sendErrorResponse(response, 500, 'Could not create an authorization request URI', error)
|
|
49
56
|
}
|
|
@@ -82,7 +89,7 @@ export function authStatusWebappEndpoint(router: Router, context: IRequiredConte
|
|
|
82
89
|
definitionId,
|
|
83
90
|
lastUpdated: requestState ? requestState.lastUpdated : Date.now(),
|
|
84
91
|
}
|
|
85
|
-
return response.
|
|
92
|
+
return response.json(statusBody)
|
|
86
93
|
}
|
|
87
94
|
|
|
88
95
|
let includeVerifiedData: VerifiedDataMode = VerifiedDataMode.NONE
|
|
@@ -114,13 +121,13 @@ export function authStatusWebappEndpoint(router: Router, context: IRequiredConte
|
|
|
114
121
|
}
|
|
115
122
|
: {}),
|
|
116
123
|
}
|
|
117
|
-
console.
|
|
124
|
+
console.debug(`Will send auth status: ${JSON.stringify(statusBody)}`)
|
|
118
125
|
if (overallState.status === 'error') {
|
|
119
126
|
response.statusCode = 500
|
|
120
|
-
return response.
|
|
127
|
+
return response.json(statusBody)
|
|
121
128
|
}
|
|
122
129
|
response.statusCode = 200
|
|
123
|
-
return response.
|
|
130
|
+
return response.json(statusBody)
|
|
124
131
|
} catch (error) {
|
|
125
132
|
return sendErrorResponse(response, 500, error.message, error)
|
|
126
133
|
}
|
|
@@ -142,7 +149,25 @@ export function removeAuthRequestStateWebappEndpoint(router: Router, context: IR
|
|
|
142
149
|
return sendErrorResponse(response, 404, 'No authorization request could be found')
|
|
143
150
|
}
|
|
144
151
|
response.statusCode = 200
|
|
145
|
-
return response.
|
|
152
|
+
return response.json(await context.agent.siopDeleteAuthState({ definitionId, correlationId }))
|
|
153
|
+
} catch (error) {
|
|
154
|
+
return sendErrorResponse(response, 500, error.message, error)
|
|
155
|
+
}
|
|
156
|
+
})
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
export function getDefinitionsEndpoint(router: Router, context: IRequiredContext, opts?: ISingleEndpointOpts) {
|
|
161
|
+
if (opts?.enabled === false) {
|
|
162
|
+
console.log(`getDefinitions Webapp endpoint is disabled`)
|
|
163
|
+
return
|
|
164
|
+
}
|
|
165
|
+
const path = opts?.path ?? '/webapp/definitions'
|
|
166
|
+
router.get(path, checkAuth(opts?.endpoint), async (request: Request, response: Response) => {
|
|
167
|
+
try {
|
|
168
|
+
const definitions = await context.agent.pdmGetDefinitions()
|
|
169
|
+
response.statusCode = 200
|
|
170
|
+
return response.json(definitions)
|
|
146
171
|
} catch (error) {
|
|
147
172
|
return sendErrorResponse(response, 500, error.message, error)
|
|
148
173
|
}
|