Skip to content

Commit b237255

Browse files
committed
fix: improve error handling for credential resource updates in passkey authentication
1 parent 6150802 commit b237255

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

index.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,15 @@ export default class TwoFactorsAuthPlugin extends AdminForthPlugin {
175175
}
176176
credMeta.counter = authenticationInfo.newCounter;
177177
credMeta.last_used_at = new Date().toISOString();
178-
await this.adminforth.resource(this.options.passkeys.credentialResourceID).update(cred[this.options.passkeys.credentialIdFieldName], { [this.options.passkeys.credentialMetaFieldName]: JSON.stringify(credMeta) });
178+
const credResource = this.adminforth.config.resources.find(r => r.resourceId === this.options.passkeys.credentialResourceID);
179+
const credResourcePKColumn = credResource?.columns.find(c => c.primaryKey);
180+
if (!credResource || !credResourcePKColumn) {
181+
throw new Error('Credential resource or its primary key is not configured correctly');
182+
}
183+
const credResourcePKName = credResourcePKColumn.name;
184+
await this.adminforth
185+
.resource(this.options.passkeys.credentialResourceID)
186+
.update(cred[credResourcePKName], { [this.options.passkeys.credentialMetaFieldName]: JSON.stringify(credMeta) });
179187
return { ok: true, passkeyConfirmed: true };
180188
} catch (e) {
181189
return { ok: false, error: 'Error authenticating passkey: ' + e };

0 commit comments

Comments
 (0)