@nebular/auth
Version:
@nebular/auth
69 lines • 9.16 kB
JavaScript
import { Injectable } from '@angular/core';
import { of as observableOf } from 'rxjs';
import { delay } from 'rxjs/operators';
import { NbAuthStrategy } from '../auth-strategy';
import { NbAuthResult } from '../../services/auth-result';
import { dummyStrategyOptions } from './dummy-strategy-options';
import * as i0 from "@angular/core";
/**
* Dummy auth strategy. Could be useful for auth setup when backend is not available yet.
*
*
* Strategy settings.
*
* ```ts
* export class NbDummyAuthStrategyOptions extends NbAuthStrategyOptions {
* name = 'dummy';
* token = {
* class: NbAuthSimpleToken,
* };
* delay? = 1000;
* alwaysFail? = false;
* }
* ```
*/
export class NbDummyAuthStrategy extends NbAuthStrategy {
constructor() {
super(...arguments);
this.defaultOptions = dummyStrategyOptions;
}
static setup(options) {
return [NbDummyAuthStrategy, options];
}
authenticate(data) {
return observableOf(this.createDummyResult(data)).pipe(delay(this.getOption('delay')));
}
register(data) {
return observableOf(this.createDummyResult(data)).pipe(delay(this.getOption('delay')));
}
requestPassword(data) {
return observableOf(this.createDummyResult(data)).pipe(delay(this.getOption('delay')));
}
resetPassword(data) {
return observableOf(this.createDummyResult(data)).pipe(delay(this.getOption('delay')));
}
logout(data) {
return observableOf(this.createDummyResult(data)).pipe(delay(this.getOption('delay')));
}
refreshToken(data) {
return observableOf(this.createDummyResult(data)).pipe(delay(this.getOption('delay')));
}
createDummyResult(data) {
if (this.getOption('alwaysFail')) {
return new NbAuthResult(false, this.createFailResponse(data), null, ['Something went wrong.']);
}
try {
const token = this.createToken('test token', true);
return new NbAuthResult(true, this.createSuccessResponse(data), '/', [], ['Successfully logged in.'], token);
}
catch (err) {
return new NbAuthResult(false, this.createFailResponse(data), null, [err.message]);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NbDummyAuthStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NbDummyAuthStrategy }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NbDummyAuthStrategy, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtbXktc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZnJhbWV3b3JrL2F1dGgvc3RyYXRlZ2llcy9kdW1teS9kdW1teS1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxFQUFFLElBQUksWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBOEIsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFHNUY7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFFSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBYztJQUR2RDs7UUFFWSxtQkFBYyxHQUErQixvQkFBb0IsQ0FBQztLQTBDN0U7SUF4Q0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFtQztRQUM5QyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFVO1FBQ3JCLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFVO1FBQ2pCLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFVO1FBQ3hCLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFVO1FBQ3RCLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFVO1FBQ2YsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVU7UUFDckIsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRVMsaUJBQWlCLENBQUMsSUFBVTtRQUNwQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuRCxPQUFPLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0csQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUUsR0FBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDaEcsQ0FBQztJQUNILENBQUM7OEdBMUNVLG1CQUFtQjtrSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiBhcyBvYnNlcnZhYmxlT2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOYkF1dGhTdHJhdGVneSB9IGZyb20gJy4uL2F1dGgtc3RyYXRlZ3knO1xuaW1wb3J0IHsgTmJBdXRoUmVzdWx0IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC1yZXN1bHQnO1xuaW1wb3J0IHsgTmJEdW1teUF1dGhTdHJhdGVneU9wdGlvbnMsIGR1bW15U3RyYXRlZ3lPcHRpb25zIH0gZnJvbSAnLi9kdW1teS1zdHJhdGVneS1vcHRpb25zJztcbmltcG9ydCB7IE5iQXV0aFN0cmF0ZWd5Q2xhc3MgfSBmcm9tICcuLi8uLi9hdXRoLm9wdGlvbnMnO1xuXG4vKipcbiAqIER1bW15IGF1dGggc3RyYXRlZ3kuIENvdWxkIGJlIHVzZWZ1bCBmb3IgYXV0aCBzZXR1cCB3aGVuIGJhY2tlbmQgaXMgbm90IGF2YWlsYWJsZSB5ZXQuXG4gKlxuICpcbiAqIFN0cmF0ZWd5IHNldHRpbmdzLlxuICpcbiAqIGBgYHRzXG4gKiBleHBvcnQgY2xhc3MgTmJEdW1teUF1dGhTdHJhdGVneU9wdGlvbnMgZXh0ZW5kcyBOYkF1dGhTdHJhdGVneU9wdGlvbnMge1xuICogICBuYW1lID0gJ2R1bW15JztcbiAqICAgdG9rZW4gPSB7XG4gKiAgICAgY2xhc3M6IE5iQXV0aFNpbXBsZVRva2VuLFxuICogICB9O1xuICogICBkZWxheT8gPSAxMDAwO1xuICogICBhbHdheXNGYWlsPyA9IGZhbHNlO1xuICogfVxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOYkR1bW15QXV0aFN0cmF0ZWd5IGV4dGVuZHMgTmJBdXRoU3RyYXRlZ3kge1xuICBwcm90ZWN0ZWQgZGVmYXVsdE9wdGlvbnM6IE5iRHVtbXlBdXRoU3RyYXRlZ3lPcHRpb25zID0gZHVtbXlTdHJhdGVneU9wdGlvbnM7XG5cbiAgc3RhdGljIHNldHVwKG9wdGlvbnM6IE5iRHVtbXlBdXRoU3RyYXRlZ3lPcHRpb25zKTogW05iQXV0aFN0cmF0ZWd5Q2xhc3MsIE5iRHVtbXlBdXRoU3RyYXRlZ3lPcHRpb25zXSB7XG4gICAgcmV0dXJuIFtOYkR1bW15QXV0aFN0cmF0ZWd5LCBvcHRpb25zXTtcbiAgfVxuXG4gIGF1dGhlbnRpY2F0ZShkYXRhPzogYW55KTogT2JzZXJ2YWJsZTxOYkF1dGhSZXN1bHQ+IHtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHRoaXMuY3JlYXRlRHVtbXlSZXN1bHQoZGF0YSkpLnBpcGUoZGVsYXkodGhpcy5nZXRPcHRpb24oJ2RlbGF5JykpKTtcbiAgfVxuXG4gIHJlZ2lzdGVyKGRhdGE/OiBhbnkpOiBPYnNlcnZhYmxlPE5iQXV0aFJlc3VsdD4ge1xuICAgIHJldHVybiBvYnNlcnZhYmxlT2YodGhpcy5jcmVhdGVEdW1teVJlc3VsdChkYXRhKSkucGlwZShkZWxheSh0aGlzLmdldE9wdGlvbignZGVsYXknKSkpO1xuICB9XG5cbiAgcmVxdWVzdFBhc3N3b3JkKGRhdGE/OiBhbnkpOiBPYnNlcnZhYmxlPE5iQXV0aFJlc3VsdD4ge1xuICAgIHJldHVybiBvYnNlcnZhYmxlT2YodGhpcy5jcmVhdGVEdW1teVJlc3VsdChkYXRhKSkucGlwZShkZWxheSh0aGlzLmdldE9wdGlvbignZGVsYXknKSkpO1xuICB9XG5cbiAgcmVzZXRQYXNzd29yZChkYXRhPzogYW55KTogT2JzZXJ2YWJsZTxOYkF1dGhSZXN1bHQ+IHtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHRoaXMuY3JlYXRlRHVtbXlSZXN1bHQoZGF0YSkpLnBpcGUoZGVsYXkodGhpcy5nZXRPcHRpb24oJ2RlbGF5JykpKTtcbiAgfVxuXG4gIGxvZ291dChkYXRhPzogYW55KTogT2JzZXJ2YWJsZTxOYkF1dGhSZXN1bHQ+IHtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHRoaXMuY3JlYXRlRHVtbXlSZXN1bHQoZGF0YSkpLnBpcGUoZGVsYXkodGhpcy5nZXRPcHRpb24oJ2RlbGF5JykpKTtcbiAgfVxuXG4gIHJlZnJlc2hUb2tlbihkYXRhPzogYW55KTogT2JzZXJ2YWJsZTxOYkF1dGhSZXN1bHQ+IHtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHRoaXMuY3JlYXRlRHVtbXlSZXN1bHQoZGF0YSkpLnBpcGUoZGVsYXkodGhpcy5nZXRPcHRpb24oJ2RlbGF5JykpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVEdW1teVJlc3VsdChkYXRhPzogYW55KTogTmJBdXRoUmVzdWx0IHtcbiAgICBpZiAodGhpcy5nZXRPcHRpb24oJ2Fsd2F5c0ZhaWwnKSkge1xuICAgICAgcmV0dXJuIG5ldyBOYkF1dGhSZXN1bHQoZmFsc2UsIHRoaXMuY3JlYXRlRmFpbFJlc3BvbnNlKGRhdGEpLCBudWxsLCBbJ1NvbWV0aGluZyB3ZW50IHdyb25nLiddKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmNyZWF0ZVRva2VuKCd0ZXN0IHRva2VuJywgdHJ1ZSk7XG4gICAgICByZXR1cm4gbmV3IE5iQXV0aFJlc3VsdCh0cnVlLCB0aGlzLmNyZWF0ZVN1Y2Nlc3NSZXNwb25zZShkYXRhKSwgJy8nLCBbXSwgWydTdWNjZXNzZnVsbHkgbG9nZ2VkIGluLiddLCB0b2tlbik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm4gbmV3IE5iQXV0aFJlc3VsdChmYWxzZSwgdGhpcy5jcmVhdGVGYWlsUmVzcG9uc2UoZGF0YSksIG51bGwsIFsoZXJyIGFzIEVycm9yKS5tZXNzYWdlXSk7XG4gICAgfVxuICB9XG59XG4iXX0=