@pagopa/io-react-native-wallet 3.4.1 → 3.4.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/lib/commonjs/credential/issuance/v1.3.3/03-complete-user-authorization.js +13 -7
- package/lib/commonjs/credential/issuance/v1.3.3/03-complete-user-authorization.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/03-complete-user-authorization.js +13 -7
- package/lib/module/credential/issuance/v1.3.3/03-complete-user-authorization.js.map +1 -1
- package/lib/typescript/credential/issuance/api/03-complete-user-authorization.d.ts +3 -1
- package/lib/typescript/credential/issuance/api/03-complete-user-authorization.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/03-complete-user-authorization.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/credential/issuance/api/03-complete-user-authorization.ts +3 -1
- package/src/credential/issuance/v1.3.3/03-complete-user-authorization.ts +13 -9
|
@@ -115,7 +115,8 @@ const completeUserAuthorizationWithFormPostJwtMode = async (requestObject, issue
|
|
|
115
115
|
exports.completeUserAuthorizationWithFormPostJwtMode = completeUserAuthorizationWithFormPostJwtMode;
|
|
116
116
|
const completeEaaUserAuthorizationWithQueryMode = async function (requestObject, issuerConfig, pid, clientRedirectUri) {
|
|
117
117
|
let {
|
|
118
|
-
appFetch = fetch
|
|
118
|
+
appFetch = fetch,
|
|
119
|
+
fetchFinalRedirectUri
|
|
119
120
|
} = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
120
121
|
_logging.Logger.log(_logging.LogLevel.DEBUG, "The requested credential is not a PID, completing the user authorization with query mode");
|
|
121
122
|
const authzResponse = await processPidPresentationAndCreateAuthzResponse({
|
|
@@ -139,13 +140,18 @@ const completeEaaUserAuthorizationWithQueryMode = async function (requestObject,
|
|
|
139
140
|
_logging.Logger.log(_logging.LogLevel.ERROR, errorMessage);
|
|
140
141
|
throw new _errors.AuthorizationError(errorMessage);
|
|
141
142
|
}
|
|
142
|
-
|
|
143
|
-
if (
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
143
|
+
let finalRedirectUri;
|
|
144
|
+
if (fetchFinalRedirectUri) {
|
|
145
|
+
finalRedirectUri = await fetchFinalRedirectUri(redirect_uri);
|
|
146
|
+
} else {
|
|
147
|
+
const response = await appFetch(redirect_uri).catch(() => null);
|
|
148
|
+
if (!response || !response.ok) {
|
|
149
|
+
const errorMessage = `An error occurred while completing the authorization flow. Ensure ${clientRedirectUri} is a valid HTTP url for redirect`;
|
|
150
|
+
_logging.Logger.log(_logging.LogLevel.ERROR, errorMessage);
|
|
151
|
+
throw new _errors.AuthorizationError(errorMessage);
|
|
152
|
+
}
|
|
153
|
+
finalRedirectUri = response.url;
|
|
147
154
|
}
|
|
148
|
-
const finalRedirectUri = response.url;
|
|
149
155
|
if (!finalRedirectUri || !finalRedirectUri.startsWith(clientRedirectUri)) {
|
|
150
156
|
const errorMessage = `The authorization server did not redirect to the provided client redirect URI. Expected: ${clientRedirectUri}, got: ${finalRedirectUri}`;
|
|
151
157
|
_logging.Logger.log(_logging.LogLevel.ERROR, errorMessage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_auth","require","_parseUrl","_interopRequireDefault","_ioWalletOid4vp","_ioWalletOid4vci","_ioWalletOauth","_errors","_logging","_v","_callbacks","_config","_errors2","_mappers","_misc","obj","__esModule","default","continueUserAuthorizationWithMRTDPoPChallenge","authRedirectUrl","Logger","log","LogLevel","DEBUG","parsedChallenge","parseMrtdChallenge","redirectUrl","challenge_info","challengeJwt","err","errorMessage","Error","message","ERROR","AuthorizationError","exports","buildAuthorizationUrl","issuerRequestUri","clientId","issuerConf","idpHint","authzRequestEndpoint","authorization_endpoint","params","URLSearchParams","client_id","request_uri","append","authUrl","completePidUserAuthorizationWithQueryMode","query","parseUrl","parseAuthorizationResponse","getRequestedCredentialToBePresented","appFetch","arguments","length","undefined","fetch","toString","requestObjectJwt","method","then","hasStatusOrThrow","IssuerResponseError","res","text","parsedAuthRequest","parseAuthorizeRequest","config","sdkConfigV1_3","callbacks","verifyJwt","createVerifyJwtFromJwks","keys","mapToRequestObject","completeUserAuthorizationWithFormPostJwtMode","requestObject","issuerConfig","pid","_ref","authzResponse","processPidPresentationAndCreateAuthzResponse","issuerSigKey","find","key","use","IoWalletError","sendAuthorizationResponseAndExtractCode","authorizationResponseJarm","jarm","responseJwe","partialCallbacks","iss","state","presentationResponseUri","response_uri","signer","alg","publicJwk","completeEaaUserAuthorizationWithQueryMode","clientRedirectUri","JSON","stringify","redirect_uri","fetchAuthorizationResponse","response","catch","ok","
|
|
1
|
+
{"version":3,"names":["_auth","require","_parseUrl","_interopRequireDefault","_ioWalletOid4vp","_ioWalletOid4vci","_ioWalletOauth","_errors","_logging","_v","_callbacks","_config","_errors2","_mappers","_misc","obj","__esModule","default","continueUserAuthorizationWithMRTDPoPChallenge","authRedirectUrl","Logger","log","LogLevel","DEBUG","parsedChallenge","parseMrtdChallenge","redirectUrl","challenge_info","challengeJwt","err","errorMessage","Error","message","ERROR","AuthorizationError","exports","buildAuthorizationUrl","issuerRequestUri","clientId","issuerConf","idpHint","authzRequestEndpoint","authorization_endpoint","params","URLSearchParams","client_id","request_uri","append","authUrl","completePidUserAuthorizationWithQueryMode","query","parseUrl","parseAuthorizationResponse","getRequestedCredentialToBePresented","appFetch","arguments","length","undefined","fetch","toString","requestObjectJwt","method","then","hasStatusOrThrow","IssuerResponseError","res","text","parsedAuthRequest","parseAuthorizeRequest","config","sdkConfigV1_3","callbacks","verifyJwt","createVerifyJwtFromJwks","keys","mapToRequestObject","completeUserAuthorizationWithFormPostJwtMode","requestObject","issuerConfig","pid","_ref","authzResponse","processPidPresentationAndCreateAuthzResponse","issuerSigKey","find","key","use","IoWalletError","sendAuthorizationResponseAndExtractCode","authorizationResponseJarm","jarm","responseJwe","partialCallbacks","iss","state","presentationResponseUri","response_uri","signer","alg","publicJwk","completeEaaUserAuthorizationWithQueryMode","clientRedirectUri","fetchFinalRedirectUri","JSON","stringify","redirect_uri","fetchAuthorizationResponse","finalRedirectUri","response","catch","ok","url","startsWith","authRes","authResParsed","AuthorizationResultShape","safeParse","success","authErr","AuthorizationErrorShape","error","AuthorizationIdpError","data","error_description","_ref2","dcqlQueryResult","RemotePresentationFlow","evaluateDcqlQuery","dcql_query","remotePresentation","prepareRemotePresentations","nonce","responseUri","vp_token","presentations","reduce","acc","_ref3","credentialId","vpToken","createAuthorizationResponse","sdkConfigV1_4","rpJwks","jwks","encrypted_response_enc_values_supported","encryptJwe","generateRandom"],"sourceRoot":"../../../../../src","sources":["credential/issuance/v1.3.3/03-complete-user-authorization.ts"],"mappings":"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"}
|
|
@@ -103,7 +103,8 @@ export const completeUserAuthorizationWithFormPostJwtMode = async (requestObject
|
|
|
103
103
|
};
|
|
104
104
|
export const completeEaaUserAuthorizationWithQueryMode = async function (requestObject, issuerConfig, pid, clientRedirectUri) {
|
|
105
105
|
let {
|
|
106
|
-
appFetch = fetch
|
|
106
|
+
appFetch = fetch,
|
|
107
|
+
fetchFinalRedirectUri
|
|
107
108
|
} = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
108
109
|
Logger.log(LogLevel.DEBUG, "The requested credential is not a PID, completing the user authorization with query mode");
|
|
109
110
|
const authzResponse = await processPidPresentationAndCreateAuthzResponse({
|
|
@@ -127,13 +128,18 @@ export const completeEaaUserAuthorizationWithQueryMode = async function (request
|
|
|
127
128
|
Logger.log(LogLevel.ERROR, errorMessage);
|
|
128
129
|
throw new AuthorizationError(errorMessage);
|
|
129
130
|
}
|
|
130
|
-
|
|
131
|
-
if (
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
131
|
+
let finalRedirectUri;
|
|
132
|
+
if (fetchFinalRedirectUri) {
|
|
133
|
+
finalRedirectUri = await fetchFinalRedirectUri(redirect_uri);
|
|
134
|
+
} else {
|
|
135
|
+
const response = await appFetch(redirect_uri).catch(() => null);
|
|
136
|
+
if (!response || !response.ok) {
|
|
137
|
+
const errorMessage = `An error occurred while completing the authorization flow. Ensure ${clientRedirectUri} is a valid HTTP url for redirect`;
|
|
138
|
+
Logger.log(LogLevel.ERROR, errorMessage);
|
|
139
|
+
throw new AuthorizationError(errorMessage);
|
|
140
|
+
}
|
|
141
|
+
finalRedirectUri = response.url;
|
|
135
142
|
}
|
|
136
|
-
const finalRedirectUri = response.url;
|
|
137
143
|
if (!finalRedirectUri || !finalRedirectUri.startsWith(clientRedirectUri)) {
|
|
138
144
|
const errorMessage = `The authorization server did not redirect to the provided client redirect URI. Expected: ${clientRedirectUri}, got: ${finalRedirectUri}`;
|
|
139
145
|
Logger.log(LogLevel.ERROR, errorMessage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AuthorizationErrorShape","AuthorizationResultShape","parseUrl","createAuthorizationResponse","parseAuthorizeRequest","fetchAuthorizationResponse","sendAuthorizationResponseAndExtractCode","parseMrtdChallenge","AuthorizationError","AuthorizationIdpError","LogLevel","Logger","RemotePresentation","RemotePresentationFlow","createVerifyJwtFromJwks","partialCallbacks","sdkConfigV1_3","sdkConfigV1_4","IoWalletError","IssuerResponseError","mapToRequestObject","hasStatusOrThrow","continueUserAuthorizationWithMRTDPoPChallenge","authRedirectUrl","log","DEBUG","parsedChallenge","redirectUrl","challenge_info","challengeJwt","err","errorMessage","Error","message","ERROR","buildAuthorizationUrl","issuerRequestUri","clientId","issuerConf","idpHint","authzRequestEndpoint","authorization_endpoint","params","URLSearchParams","client_id","request_uri","append","authUrl","completePidUserAuthorizationWithQueryMode","query","parseAuthorizationResponse","getRequestedCredentialToBePresented","appFetch","arguments","length","undefined","fetch","toString","requestObjectJwt","method","then","res","text","parsedAuthRequest","config","callbacks","verifyJwt","keys","completeUserAuthorizationWithFormPostJwtMode","requestObject","issuerConfig","pid","_ref","authzResponse","processPidPresentationAndCreateAuthzResponse","issuerSigKey","find","key","use","authorizationResponseJarm","jarm","responseJwe","iss","state","presentationResponseUri","response_uri","signer","alg","publicJwk","completeEaaUserAuthorizationWithQueryMode","clientRedirectUri","JSON","stringify","redirect_uri","response","catch","ok","
|
|
1
|
+
{"version":3,"names":["AuthorizationErrorShape","AuthorizationResultShape","parseUrl","createAuthorizationResponse","parseAuthorizeRequest","fetchAuthorizationResponse","sendAuthorizationResponseAndExtractCode","parseMrtdChallenge","AuthorizationError","AuthorizationIdpError","LogLevel","Logger","RemotePresentation","RemotePresentationFlow","createVerifyJwtFromJwks","partialCallbacks","sdkConfigV1_3","sdkConfigV1_4","IoWalletError","IssuerResponseError","mapToRequestObject","hasStatusOrThrow","continueUserAuthorizationWithMRTDPoPChallenge","authRedirectUrl","log","DEBUG","parsedChallenge","redirectUrl","challenge_info","challengeJwt","err","errorMessage","Error","message","ERROR","buildAuthorizationUrl","issuerRequestUri","clientId","issuerConf","idpHint","authzRequestEndpoint","authorization_endpoint","params","URLSearchParams","client_id","request_uri","append","authUrl","completePidUserAuthorizationWithQueryMode","query","parseAuthorizationResponse","getRequestedCredentialToBePresented","appFetch","arguments","length","undefined","fetch","toString","requestObjectJwt","method","then","res","text","parsedAuthRequest","config","callbacks","verifyJwt","keys","completeUserAuthorizationWithFormPostJwtMode","requestObject","issuerConfig","pid","_ref","authzResponse","processPidPresentationAndCreateAuthzResponse","issuerSigKey","find","key","use","authorizationResponseJarm","jarm","responseJwe","iss","state","presentationResponseUri","response_uri","signer","alg","publicJwk","completeEaaUserAuthorizationWithQueryMode","clientRedirectUri","fetchFinalRedirectUri","JSON","stringify","redirect_uri","finalRedirectUri","response","catch","ok","url","startsWith","authRes","authResParsed","safeParse","success","authErr","error","data","error_description","_ref2","dcqlQueryResult","evaluateDcqlQuery","dcql_query","remotePresentation","prepareRemotePresentations","nonce","responseUri","vp_token","presentations","reduce","acc","_ref3","credentialId","vpToken","rpJwks","jwks","encrypted_response_enc_values_supported","encryptJwe","generateRandom"],"sourceRoot":"../../../../../src","sources":["credential/issuance/v1.3.3/03-complete-user-authorization.ts"],"mappings":"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"}
|
|
@@ -39,11 +39,13 @@ export interface CompleteUserAuthorizationApi {
|
|
|
39
39
|
* @param issuerConfig The issuer configuration returned by {@link evaluateIssuerTrust}
|
|
40
40
|
* @param pid The PID to present as a tuple [keyTag, credential].
|
|
41
41
|
* @param redirectUri The client redirect URI to which the authorization server will redirect after completing the authorization process.
|
|
42
|
-
* @param appFetch (optional) fetch api implementation. Default: built-in fetch
|
|
43
42
|
* @returns The authorization response which contains code, state and iss
|
|
44
43
|
*/
|
|
45
44
|
completeEaaUserAuthorizationWithQueryMode(requestObject: RequestObject, issuerConf: IssuerConfig, pid: [keyTag: string, credential: string], redirectUri: string, context?: {
|
|
45
|
+
/** Fetch api implementation. Default: built-in fetch. */
|
|
46
46
|
appFetch?: GlobalFetch["fetch"];
|
|
47
|
+
/** Function to fetch the final redirect uri; it allows full control on how redirects are handled. If not provided, `appFetch` is used. */
|
|
48
|
+
fetchFinalRedirectUri?: (url: string) => Promise<string | undefined>;
|
|
47
49
|
}): Promise<AuthorizationResult>;
|
|
48
50
|
/**
|
|
49
51
|
* WARNING: This function must be called after {@link getRequestedCredentialToBePresented}. The next function to be called is {@link authorizeAccess}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"03-complete-user-authorization.d.ts","sourceRoot":"","sources":["../../../../../src/credential/issuance/api/03-complete-user-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EACV,4BAA4B,EAC5B,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,4BAA4B;IAC3C;;;;;;;;;;;;;;OAcG;IACH,mCAAmC,CACjC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,YAAY,EACxB,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,GAC9B,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1B;;;;;;;;;OASG;IACH,yCAAyC,CACvC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC
|
|
1
|
+
{"version":3,"file":"03-complete-user-authorization.d.ts","sourceRoot":"","sources":["../../../../../src/credential/issuance/api/03-complete-user-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EACV,4BAA4B,EAC5B,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,4BAA4B;IAC3C;;;;;;;;;;;;;;OAcG;IACH,mCAAmC,CACjC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,YAAY,EACxB,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,GAC9B,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1B;;;;;;;;;OASG;IACH,yCAAyC,CACvC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,yCAAyC,CACvC,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,YAAY,EACxB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EACzC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR,yDAAyD;QACzD,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,0IAA0I;QAC1I,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;KACtE,GACA,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;;;;;;;;;;OAaG;IACH,4CAA4C,CAC1C,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,YAAY,EACxB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EACzC,OAAO,EAAE;QACP,gBAAgB,EAAE,aAAa,CAAC;QAChC,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;KACjC,GACA,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;;;;OAOG;IACH,6CAA6C,CAC3C,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAEzC;;;;;;;;;;;;OAYG;IACH,qBAAqB,CACnB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,YAAY,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"03-complete-user-authorization.d.ts","sourceRoot":"","sources":["../../../../../src/credential/issuance/v1.3.3/03-complete-user-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAqB7B,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAC;AAKxD,eAAO,MAAM,6CAA6C,EAAE,WAAW,CAAC,+CAA+C,CAoBpH,CAAC;AAEJ,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,uBAAuB,CAgBpE,CAAC;AAEJ,eAAO,MAAM,yCAAyC,EAAE,WAAW,CAAC,2CAA2C,CAS5G,CAAC;AAEJ,eAAO,MAAM,mCAAmC,EAAE,WAAW,CAAC,qCAAqC,CAkChG,CAAC;AAGJ,eAAO,MAAM,4CAA4C,EAAE,WAAW,CAAC,8CAA8C,CAqClH,CAAC;AAEJ,eAAO,MAAM,yCAAyC,EAAE,WAAW,CAAC,2CAA2C,
|
|
1
|
+
{"version":3,"file":"03-complete-user-authorization.d.ts","sourceRoot":"","sources":["../../../../../src/credential/issuance/v1.3.3/03-complete-user-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAqB7B,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAC;AAKxD,eAAO,MAAM,6CAA6C,EAAE,WAAW,CAAC,+CAA+C,CAoBpH,CAAC;AAEJ,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,uBAAuB,CAgBpE,CAAC;AAEJ,eAAO,MAAM,yCAAyC,EAAE,WAAW,CAAC,2CAA2C,CAS5G,CAAC;AAEJ,eAAO,MAAM,mCAAmC,EAAE,WAAW,CAAC,qCAAqC,CAkChG,CAAC;AAGJ,eAAO,MAAM,4CAA4C,EAAE,WAAW,CAAC,8CAA8C,CAqClH,CAAC;AAEJ,eAAO,MAAM,yCAAyC,EAAE,WAAW,CAAC,2CAA2C,CA6D5G,CAAC;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,OAAO,KACf,mBAqBF,CAAC"}
|
package/package.json
CHANGED
|
@@ -52,7 +52,6 @@ export interface CompleteUserAuthorizationApi {
|
|
|
52
52
|
* @param issuerConfig The issuer configuration returned by {@link evaluateIssuerTrust}
|
|
53
53
|
* @param pid The PID to present as a tuple [keyTag, credential].
|
|
54
54
|
* @param redirectUri The client redirect URI to which the authorization server will redirect after completing the authorization process.
|
|
55
|
-
* @param appFetch (optional) fetch api implementation. Default: built-in fetch
|
|
56
55
|
* @returns The authorization response which contains code, state and iss
|
|
57
56
|
*/
|
|
58
57
|
completeEaaUserAuthorizationWithQueryMode(
|
|
@@ -61,7 +60,10 @@ export interface CompleteUserAuthorizationApi {
|
|
|
61
60
|
pid: [keyTag: string, credential: string],
|
|
62
61
|
redirectUri: string,
|
|
63
62
|
context?: {
|
|
63
|
+
/** Fetch api implementation. Default: built-in fetch. */
|
|
64
64
|
appFetch?: GlobalFetch["fetch"];
|
|
65
|
+
/** Function to fetch the final redirect uri; it allows full control on how redirects are handled. If not provided, `appFetch` is used. */
|
|
66
|
+
fetchFinalRedirectUri?: (url: string) => Promise<string | undefined>;
|
|
65
67
|
}
|
|
66
68
|
): Promise<AuthorizationResult>;
|
|
67
69
|
|
|
@@ -161,7 +161,7 @@ export const completeEaaUserAuthorizationWithQueryMode: IssuanceApi["completeEaa
|
|
|
161
161
|
issuerConfig,
|
|
162
162
|
pid,
|
|
163
163
|
clientRedirectUri,
|
|
164
|
-
{ appFetch = fetch } = {}
|
|
164
|
+
{ appFetch = fetch, fetchFinalRedirectUri } = {}
|
|
165
165
|
) => {
|
|
166
166
|
Logger.log(
|
|
167
167
|
LogLevel.DEBUG,
|
|
@@ -195,16 +195,20 @@ export const completeEaaUserAuthorizationWithQueryMode: IssuanceApi["completeEaa
|
|
|
195
195
|
throw new AuthorizationError(errorMessage);
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
if (
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
198
|
+
let finalRedirectUri: string | undefined;
|
|
199
|
+
|
|
200
|
+
if (fetchFinalRedirectUri) {
|
|
201
|
+
finalRedirectUri = await fetchFinalRedirectUri(redirect_uri);
|
|
202
|
+
} else {
|
|
203
|
+
const response = await appFetch(redirect_uri).catch(() => null);
|
|
204
|
+
if (!response || !response.ok) {
|
|
205
|
+
const errorMessage = `An error occurred while completing the authorization flow. Ensure ${clientRedirectUri} is a valid HTTP url for redirect`;
|
|
206
|
+
Logger.log(LogLevel.ERROR, errorMessage);
|
|
207
|
+
throw new AuthorizationError(errorMessage);
|
|
208
|
+
}
|
|
209
|
+
finalRedirectUri = response.url;
|
|
204
210
|
}
|
|
205
211
|
|
|
206
|
-
const finalRedirectUri = response.url;
|
|
207
|
-
|
|
208
212
|
if (!finalRedirectUri || !finalRedirectUri.startsWith(clientRedirectUri)) {
|
|
209
213
|
const errorMessage = `The authorization server did not redirect to the provided client redirect URI. Expected: ${clientRedirectUri}, got: ${finalRedirectUri}`;
|
|
210
214
|
Logger.log(LogLevel.ERROR, errorMessage);
|