* @property {(DBContextExec) => Promise<any>} context
* @property {(dbCtx: any, identifier: String) => Promise<AuthInfo> } authenticationGet
* @property {(dbCtx: any, identifier: String) => Promise<void>} authenticationSuccess
- * @property {(dbCtx: any, identifier: String, credential: String, otpKey: String=) => Promise<void>} authenticationInsertIdentifier
+ * @property {(dbCtx: any, identifier: String, credential: String, otpKey: String=) => Promise<void>} authenticationUpsert
* @property {(dbCtx: any, identifier: String, otpKey: String) => Promise<void>} authenticationUpdateOTPKey
* @property {(dbCtx: any, identifier: String, credential: AuthInfo) => Promise<void>} authenticationUpdateCredential
*/
const _scope = _fileScope('createIdentifier');
try {
const secureCredential = await this._secureCredential(credential);
- await this.db.authenticationInsertIdentifier(dbCtx, identifier, secureCredential, otpKey);
+ await this.db.authenticationUpsert(dbCtx, identifier, secureCredential, otpKey);
} catch (e) {
this.logger.error(_scope, 'failed', { error: e, identifier });
throw e;
}
+ /**
+ * Update the authentication database with a new otp key.
+ * @param {*} dbCtx db context
+ * @param {string} identifier identifier
+ * @param {string=} otpKey otp key
+ */
+ async updateOTPKey(dbCtx, identifier, otpKey) {
+ const _scope = _fileScope('updateOTPKey');
+ try {
+ await this.db.authenticationUpdateOTPKey(dbCtx, identifier, otpKey);
+ this.logger.info(_scope, 'otp key updated');
+ } catch (e) {
+ this.logger.error(_scope, 'failed', { error: e, identifier });
+ }
+ }
+
+
/**
* Check for valid Basic auth, updates ctx with identifier if valid.
* @param {String} credentials