@phemium-costaisa/fingerprint-auth
Version:
Automatic plugin to work with FaceID and TouchID authentication
78 lines • 8.37 kB
JavaScript
import { APP_INITIALIZER, NgModule } from '@angular/core';
import { FingerprintService } from './service/fingerprint.service';
import { FingerprintMockService } from './service/fingerprint.mock.service';
import { BiometricLoginActivePipe } from './pipes/biometric-login.active.pipe';
import { TouchID } from '@ionic-native/touch-id/ngx';
import { Keychain } from '@ionic-native/keychain/ngx';
import { FingerprintAIO } from '@ionic-native/fingerprint-aio/ngx';
import { AndroidFingerprintAuth } from '@ionic-native/android-fingerprint-auth/ngx';
import { StorageService } from './service/storage.service';
import { Config } from './tokens';
const defaultConfig = {
debug: false,
enabled: true
};
export function initStorage(storageService) {
return () => storageService.init();
}
export const storageProvider = {
provide: APP_INITIALIZER,
useFactory: initStorage,
deps: [StorageService],
multi: true
};
export class FingerprintAuthModule {
static forRoot(options = {}) {
options = Object.assign(defaultConfig, options);
if (options.enabled) {
return {
ngModule: FingerprintAuthModule,
providers: [
FingerprintService,
TouchID,
Keychain,
FingerprintAIO,
AndroidFingerprintAuth,
StorageService,
storageProvider,
{ provide: Config, useValue: options }
]
};
}
else {
// Mock service
return {
ngModule: FingerprintAuthModule,
providers: [
{
provide: FingerprintService,
useClass: FingerprintMockService
},
TouchID,
Keychain,
FingerprintAIO,
AndroidFingerprintAuth,
StorageService,
storageProvider,
{ provide: Config, useValue: options }
]
};
}
}
static forChild() {
return {
ngModule: FingerprintAuthModule
};
}
}
FingerprintAuthModule.decorators = [
{ type: NgModule, args: [{
declarations: [
BiometricLoginActivePipe
],
exports: [
BiometricLoginActivePipe
]
},] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZ2VycHJpbnQtYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9maW5nZXJwcmludEF1dGgvc3JjL2xpYi9maW5nZXJwcmludC1hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxhQUFhLEdBQWlDO0lBQ2xELEtBQUssRUFBRSxLQUFLO0lBQ1osT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFBO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxjQUFjO0lBQ3hDLE9BQU8sR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3JDLENBQUM7QUFDRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDN0IsT0FBTyxFQUFFLGVBQWU7SUFDeEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQ3RCLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQVVGLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsTUFBTSxDQUFDLE9BQU8sQ0FBRSxVQUFpRCxFQUFFO1FBQ2pFLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDbkIsT0FBTztnQkFDTCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixTQUFTLEVBQUU7b0JBQ1Qsa0JBQWtCO29CQUNsQixPQUFPO29CQUNQLFFBQVE7b0JBQ1IsY0FBYztvQkFDZCxzQkFBc0I7b0JBQ3RCLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtpQkFDdkM7YUFDRixDQUFBO1NBQ0Y7YUFBTTtZQUNMLGVBQWU7WUFDZixPQUFPO2dCQUNMLFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsa0JBQWtCO3dCQUMzQixRQUFRLEVBQUUsc0JBQXNCO3FCQUNqQztvQkFDRCxPQUFPO29CQUNQLFFBQVE7b0JBQ1IsY0FBYztvQkFDZCxzQkFBc0I7b0JBQ3RCLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtpQkFDdkM7YUFDRixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDYixPQUFPO1lBQ0wsUUFBUSxFQUFFLHFCQUFxQjtTQUNoQyxDQUFBO0lBQ0gsQ0FBQzs7O1lBbkRGLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osd0JBQXdCO2lCQUN6QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asd0JBQXdCO2lCQUN6QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaW5nZXJwcmludFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UvZmluZ2VycHJpbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbmdlcnByaW50TW9ja1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UvZmluZ2VycHJpbnQubW9jay5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmlvbWV0cmljTG9naW5BY3RpdmVQaXBlIH0gZnJvbSAnLi9waXBlcy9iaW9tZXRyaWMtbG9naW4uYWN0aXZlLnBpcGUnO1xyXG5pbXBvcnQgeyBUb3VjaElEIH0gZnJvbSAnQGlvbmljLW5hdGl2ZS90b3VjaC1pZC9uZ3gnO1xyXG5pbXBvcnQgeyBLZXljaGFpbiB9IGZyb20gJ0Bpb25pYy1uYXRpdmUva2V5Y2hhaW4vbmd4JztcclxuaW1wb3J0IHsgRmluZ2VycHJpbnRBSU8gfSBmcm9tICdAaW9uaWMtbmF0aXZlL2ZpbmdlcnByaW50LWFpby9uZ3gnO1xyXG5pbXBvcnQgeyBBbmRyb2lkRmluZ2VycHJpbnRBdXRoIH0gZnJvbSAnQGlvbmljLW5hdGl2ZS9hbmRyb2lkLWZpbmdlcnByaW50LWF1dGgvbmd4JztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2Uvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmluZ2VycHJpbnRBdXRoQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4vdG9rZW5zJztcclxuXHJcbmNvbnN0IGRlZmF1bHRDb25maWc6IEZpbmdlcnByaW50QXV0aENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgZGVidWc6IGZhbHNlLFxyXG4gIGVuYWJsZWQ6IHRydWVcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGluaXRTdG9yYWdlKHN0b3JhZ2VTZXJ2aWNlKSB7XHJcbiAgcmV0dXJuICgpID0+IHN0b3JhZ2VTZXJ2aWNlLmluaXQoKTtcclxufVxyXG5leHBvcnQgY29uc3Qgc3RvcmFnZVByb3ZpZGVyID0ge1xyXG4gIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICB1c2VGYWN0b3J5OiBpbml0U3RvcmFnZSxcclxuICBkZXBzOiBbU3RvcmFnZVNlcnZpY2VdLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQmlvbWV0cmljTG9naW5BY3RpdmVQaXBlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBCaW9tZXRyaWNMb2dpbkFjdGl2ZVBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaW5nZXJwcmludEF1dGhNb2R1bGUge1xyXG5cclxuICBzdGF0aWMgZm9yUm9vdCggb3B0aW9uczogUGFydGlhbDxGaW5nZXJwcmludEF1dGhDb25maWd1cmF0aW9uPiA9IHt9ICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RmluZ2VycHJpbnRBdXRoTW9kdWxlPiB7XHJcbiAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0Q29uZmlnLCBvcHRpb25zKTtcclxuICAgIGlmIChvcHRpb25zLmVuYWJsZWQpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuZ01vZHVsZTogRmluZ2VycHJpbnRBdXRoTW9kdWxlLFxyXG4gICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgRmluZ2VycHJpbnRTZXJ2aWNlLFxyXG4gICAgICAgICAgVG91Y2hJRCxcclxuICAgICAgICAgIEtleWNoYWluLFxyXG4gICAgICAgICAgRmluZ2VycHJpbnRBSU8sXHJcbiAgICAgICAgICBBbmRyb2lkRmluZ2VycHJpbnRBdXRoLFxyXG4gICAgICAgICAgU3RvcmFnZVNlcnZpY2UsXHJcbiAgICAgICAgICBzdG9yYWdlUHJvdmlkZXIsXHJcbiAgICAgICAgICB7IHByb3ZpZGU6IENvbmZpZywgdXNlVmFsdWU6IG9wdGlvbnMgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gTW9jayBzZXJ2aWNlXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbmdNb2R1bGU6IEZpbmdlcnByaW50QXV0aE1vZHVsZSxcclxuICAgICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogRmluZ2VycHJpbnRTZXJ2aWNlLFxyXG4gICAgICAgICAgICB1c2VDbGFzczogRmluZ2VycHJpbnRNb2NrU2VydmljZVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIFRvdWNoSUQsXHJcbiAgICAgICAgICBLZXljaGFpbixcclxuICAgICAgICAgIEZpbmdlcnByaW50QUlPLFxyXG4gICAgICAgICAgQW5kcm9pZEZpbmdlcnByaW50QXV0aCxcclxuICAgICAgICAgIFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgICAgc3RvcmFnZVByb3ZpZGVyLFxyXG4gICAgICAgICAgeyBwcm92aWRlOiBDb25maWcsIHVzZVZhbHVlOiBvcHRpb25zIH1cclxuICAgICAgICBdXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZm9yQ2hpbGQoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxGaW5nZXJwcmludEF1dGhNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBGaW5nZXJwcmludEF1dGhNb2R1bGVcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==