Skip to content

Commit 5cd31f3

Browse files
committed
chore: fixed session lookup by credentialOfferCorrelationId
1 parent c58c400 commit 5cd31f3

3 files changed

Lines changed: 7 additions & 7 deletions

File tree

packages/issuer-rest/lib/oid4vci-api-functions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ export function getIssuePayloadEndpoint<DIDDoc extends object>(router: Router, i
108108
error_description: `query parameter 'id' is missing`
109109
})
110110
}
111-
const session = await issuer.getCredentialOfferSessionById(id as string)
111+
const session = await issuer.getCredentialOfferSessionById(id as string, 'preAuthorizedCode')
112112
if (!session || !session.credentialOffer) {
113113
return sendErrorResponse(response, 404, {
114114
error: 'invalid_request',

packages/issuer/lib/VcIssuer.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ export class VcIssuer<DIDDoc extends object> {
113113
this._cNonceExpiresIn = (args?.cNonceExpiresIn ?? (process.env.C_NONCE_EXPIRES_IN ? parseInt(process.env.C_NONCE_EXPIRES_IN) : 300)) as number
114114
}
115115

116-
public async getCredentialOfferSessionById(id: string, lookup?: 'uri' | 'id'): Promise<CredentialOfferSession> {
116+
public async getCredentialOfferSessionById(id: string, lookup?: 'uri' | 'id' | 'preAuthorizedCode'): Promise<CredentialOfferSession> {
117117
if (!this.uris) {
118118
return Promise.reject(Error('Cannot lookup credential offer by id if URI state manager is not set'))
119119
}
@@ -233,8 +233,8 @@ export class VcIssuer<DIDDoc extends object> {
233233
throw Error('No URI state manager set, whilst apparently credential offer URIs are being used')
234234
}
235235
const credentialOfferCorrelationId = shortUUID.generate()// TODO allow to be supplied
236-
credentialOfferObject.credential_offer_uri = opts.credentialOfferUri ?? `${issuerPayloadUri}/${credentialOfferCorrelationId}` // TODO how is this going to work with auth code flow?
237-
await this.uris.set(credentialOfferObject.credential_offer_uri, {
236+
credentialOfferObject.credential_offer_uri = opts.credentialOfferUri ?? `${issuerPayloadUri?.replace(':id', credentialOfferCorrelationId)}` // TODO how is this going to work with auth code flow?
237+
await this.uris.set(credentialOfferCorrelationId, {
238238
uri: credentialOfferObject.credential_offer_uri,
239239
createdAt: createdAt,
240240
preAuthorizedCode,

packages/issuer/lib/__tests__/VcIssuer.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ describe('VcIssuer', () => {
288288
vcIssuer
289289
.createCredentialOfferURI({
290290
credentialOfferPayloadMode: 'by_uri_reference',
291-
issuerPayloadUri: 'http://issuer-example.com',
291+
issuerPayloadUri: 'http://issuer-example.com/:id',
292292
grants: {
293293
authorization_code: {
294294
issuer_state: issuerState
@@ -712,7 +712,7 @@ describe('VcIssuer without did', () => {
712712
it('should create credential offer uri with by_uri_reference mode', async () => {
713713
const result = await vcIssuer.createCredentialOfferURI({
714714
credentialOfferPayloadMode: 'by_uri_reference',
715-
issuerPayloadUri: 'https://example.com/api/credentials',
715+
issuerPayloadUri: 'https://example.com/api/credentials/:id',
716716
grants: {
717717
authorization_code: {
718718
issuer_state: issuerState
@@ -743,7 +743,7 @@ describe('VcIssuer without did', () => {
743743
it('should get credential offer session by uri', async () => {
744744
const result = await vcIssuer.createCredentialOfferURI({
745745
credentialOfferPayloadMode: 'by_uri_reference',
746-
issuerPayloadUri: 'https://example.com/api/credentials',
746+
issuerPayloadUri: 'https://example.com/api/credentials/:id',
747747
grants: {
748748
authorization_code: {
749749
issuer_state: issuerState

0 commit comments

Comments
 (0)