@openid4vc/oauth2 0.3.0-alpha-20251029103950 → 0.3.0-alpha-20251030142433
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/index.d.mts +275 -2
- package/dist/index.d.ts +275 -2
- package/dist/index.js +90 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +87 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -189,6 +189,7 @@ const zJwtPayload = zod.default.object({
|
|
|
189
189
|
nbf: __openid4vc_utils.zInteger.optional(),
|
|
190
190
|
nonce: zod.default.string().optional(),
|
|
191
191
|
jti: zod.default.string().optional(),
|
|
192
|
+
sub: zod.default.string().optional(),
|
|
192
193
|
cnf: zJwtConfirmationPayload.optional(),
|
|
193
194
|
status: zod.default.record(zod.default.string(), zod.default.any()).optional(),
|
|
194
195
|
trust_chain: zod.default.tuple([zod.default.string()], zod.default.string()).optional()
|
|
@@ -868,6 +869,91 @@ var Oauth2ResourceUnauthorizedError = class Oauth2ResourceUnauthorizedError exte
|
|
|
868
869
|
}
|
|
869
870
|
};
|
|
870
871
|
|
|
872
|
+
//#endregion
|
|
873
|
+
//#region src/id-token/z-id-token-jwt.ts
|
|
874
|
+
const zIdTokenJwtHeader = zod.default.object({ ...zJwtHeader.shape }).loose();
|
|
875
|
+
const zIdTokenJwtPayload = zod.default.object({
|
|
876
|
+
...zJwtPayload.shape,
|
|
877
|
+
iss: zod.default.string(),
|
|
878
|
+
sub: zod.default.string(),
|
|
879
|
+
aud: zod.default.string(),
|
|
880
|
+
exp: __openid4vc_utils.zInteger,
|
|
881
|
+
iat: __openid4vc_utils.zInteger,
|
|
882
|
+
auth_time: __openid4vc_utils.zInteger.optional(),
|
|
883
|
+
acr: zod.default.string().optional(),
|
|
884
|
+
amr: zod.default.array(zod.default.string()).optional(),
|
|
885
|
+
azp: zod.default.string().optional(),
|
|
886
|
+
name: zod.default.string().optional(),
|
|
887
|
+
given_name: zod.default.string().optional(),
|
|
888
|
+
family_name: zod.default.string().optional(),
|
|
889
|
+
middle_name: zod.default.string().optional(),
|
|
890
|
+
nickname: zod.default.string().optional(),
|
|
891
|
+
preferred_username: zod.default.string().optional(),
|
|
892
|
+
profile: zod.default.url().optional(),
|
|
893
|
+
picture: zod.default.url().optional(),
|
|
894
|
+
website: zod.default.url().optional(),
|
|
895
|
+
email: zod.default.email().optional(),
|
|
896
|
+
email_verified: zod.default.boolean().optional(),
|
|
897
|
+
gender: zod.default.enum(["male", "female"]).or(zod.default.string()).optional(),
|
|
898
|
+
birthdate: zod.default.iso.date().optional(),
|
|
899
|
+
zoneinfo: zod.default.string().optional(),
|
|
900
|
+
locale: zod.default.string().optional(),
|
|
901
|
+
phone_number: zod.default.string().optional(),
|
|
902
|
+
phone_number_verified: zod.default.boolean().optional(),
|
|
903
|
+
address: zod.default.object({
|
|
904
|
+
formatted: zod.default.string().optional(),
|
|
905
|
+
street_address: zod.default.string().optional(),
|
|
906
|
+
locality: zod.default.string().optional(),
|
|
907
|
+
region: zod.default.string().optional(),
|
|
908
|
+
postal_code: zod.default.string().optional(),
|
|
909
|
+
country: zod.default.string().optional()
|
|
910
|
+
}).loose().optional(),
|
|
911
|
+
updated_at: __openid4vc_utils.zInteger.optional()
|
|
912
|
+
}).loose();
|
|
913
|
+
|
|
914
|
+
//#endregion
|
|
915
|
+
//#region src/id-token/verify-id-token.ts
|
|
916
|
+
/**
|
|
917
|
+
* Verify an ID Token JWT.
|
|
918
|
+
*/
|
|
919
|
+
async function verifyJwtIdToken(options) {
|
|
920
|
+
const { header, payload } = decodeJwt({
|
|
921
|
+
jwt: options.idToken,
|
|
922
|
+
headerSchema: zIdTokenJwtHeader,
|
|
923
|
+
payloadSchema: zIdTokenJwtPayload
|
|
924
|
+
});
|
|
925
|
+
const jwksUrl = options.authorizationServer.jwks_uri;
|
|
926
|
+
if (!jwksUrl) throw new Oauth2Error(`Authorization server '${options.authorizationServer.issuer}' does not have a 'jwks_uri' parameter to fetch JWKs.`);
|
|
927
|
+
if (payload.iss !== options.authorizationServer.issuer) throw new Oauth2Error(`Invalid 'iss' claim in id token jwt. Expected '${options.authorizationServer.issuer}', got '${payload.iss}'.`);
|
|
928
|
+
if (payload.azp && payload.azp !== options.clientId) throw new Oauth2Error(`Invalid 'azp' claim in id token jwt. Expected '${options.clientId}', got '${payload.azp}'.`);
|
|
929
|
+
const jwks = await fetchJwks(jwksUrl, options.callbacks.fetch);
|
|
930
|
+
const publicJwk = extractJwkFromJwksForJwt({
|
|
931
|
+
kid: header.kid,
|
|
932
|
+
jwks,
|
|
933
|
+
use: "sig"
|
|
934
|
+
});
|
|
935
|
+
await verifyJwt({
|
|
936
|
+
compact: options.idToken,
|
|
937
|
+
header,
|
|
938
|
+
payload,
|
|
939
|
+
signer: {
|
|
940
|
+
method: "jwk",
|
|
941
|
+
publicJwk,
|
|
942
|
+
alg: header.alg
|
|
943
|
+
},
|
|
944
|
+
verifyJwtCallback: options.callbacks.verifyJwt,
|
|
945
|
+
errorMessage: "Error during verification of id token jwt.",
|
|
946
|
+
now: options.now,
|
|
947
|
+
expectedAudience: options.clientId,
|
|
948
|
+
expectedIssuer: options.authorizationServer.issuer,
|
|
949
|
+
expectedNonce: options.expectedNonce
|
|
950
|
+
});
|
|
951
|
+
return {
|
|
952
|
+
header,
|
|
953
|
+
payload
|
|
954
|
+
};
|
|
955
|
+
}
|
|
956
|
+
|
|
871
957
|
//#endregion
|
|
872
958
|
//#region src/metadata/fetch-well-known-metadata.ts
|
|
873
959
|
/**
|
|
@@ -2535,13 +2621,17 @@ Object.defineProperty(exports, 'setGlobalConfig', {
|
|
|
2535
2621
|
return __openid4vc_utils.setGlobalConfig;
|
|
2536
2622
|
}
|
|
2537
2623
|
});
|
|
2624
|
+
exports.verifyClientAttestationJwt = verifyClientAttestationJwt;
|
|
2538
2625
|
exports.verifyJwt = verifyJwt;
|
|
2626
|
+
exports.verifyJwtIdToken = verifyJwtIdToken;
|
|
2539
2627
|
exports.verifyResourceRequest = verifyResourceRequest;
|
|
2540
2628
|
exports.zAlgValueNotNone = zAlgValueNotNone;
|
|
2541
2629
|
exports.zAuthorizationCodeGrantIdentifier = zAuthorizationCodeGrantIdentifier;
|
|
2542
2630
|
exports.zAuthorizationServerMetadata = zAuthorizationServerMetadata;
|
|
2543
2631
|
exports.zCompactJwe = zCompactJwe;
|
|
2544
2632
|
exports.zCompactJwt = zCompactJwt;
|
|
2633
|
+
exports.zIdTokenJwtHeader = zIdTokenJwtHeader;
|
|
2634
|
+
exports.zIdTokenJwtPayload = zIdTokenJwtPayload;
|
|
2545
2635
|
exports.zJwk = zJwk;
|
|
2546
2636
|
exports.zJwkSet = zJwkSet;
|
|
2547
2637
|
exports.zJwtHeader = zJwtHeader;
|