@delon/auth 17.0.5 → 17.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/auth.config.mjs +1 -2
- package/esm2022/src/social/social.service.mjs +11 -17
- package/esm2022/src/store/cookie-storage.service.mjs +5 -3
- package/esm2022/src/token/base.interceptor.mjs +1 -1
- package/esm2022/src/token/helper.mjs +1 -1
- package/esm2022/src/token/jwt/jwt.guard.mjs +8 -11
- package/esm2022/src/token/jwt/jwt.helper.mjs +1 -1
- package/esm2022/src/token/simple/simple.guard.mjs +8 -11
- package/esm2022/src/token/simple/simple.interceptor.mjs +1 -1
- package/esm2022/src/token/token.service.mjs +9 -12
- package/fesm2022/auth.mjs +32 -49
- package/fesm2022/auth.mjs.map +1 -1
- package/package.json +2 -2
- package/src/social/social.service.d.ts +4 -6
- package/src/store/cookie-storage.service.d.ts +1 -3
- package/src/token/jwt/jwt.guard.d.ts +1 -3
- package/src/token/simple/simple.guard.d.ts +1 -3
- package/src/token/token.service.d.ts +2 -3
|
@@ -6,11 +6,10 @@ export const AUTH_DEFAULT_CONFIG = {
|
|
|
6
6
|
token_send_template: '${token}',
|
|
7
7
|
token_send_place: 'header',
|
|
8
8
|
login_url: '/login',
|
|
9
|
-
ignores: [/\/login/, /assets\//, /passport\//],
|
|
10
9
|
refreshTime: 3000,
|
|
11
10
|
refreshOffset: 6000
|
|
12
11
|
};
|
|
13
12
|
export function mergeConfig(srv) {
|
|
14
13
|
return srv.merge('auth', AUTH_DEFAULT_CONFIG);
|
|
15
14
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9hdXRoLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBb0I7SUFDbEQsU0FBUyxFQUFFLFFBQVE7SUFDbkIsc0JBQXNCLEVBQUUsSUFBSTtJQUM1QixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLGNBQWMsRUFBRSxPQUFPO0lBQ3ZCLG1CQUFtQixFQUFFLFVBQVU7SUFDL0IsZ0JBQWdCLEVBQUUsUUFBUTtJQUMxQixTQUFTLEVBQUUsUUFBUTtJQUNuQixXQUFXLEVBQUUsSUFBSTtJQUNqQixhQUFhLEVBQUUsSUFBSTtDQUNwQixDQUFDO0FBRUYsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUF1QjtJQUNqRCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFFLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWxhaW5BdXRoQ29uZmlnLCBBbGFpbkNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAZGVsb24vdXRpbC9jb25maWcnO1xuXG5leHBvcnQgY29uc3QgQVVUSF9ERUZBVUxUX0NPTkZJRzogQWxhaW5BdXRoQ29uZmlnID0ge1xuICBzdG9yZV9rZXk6IGBfdG9rZW5gLFxuICB0b2tlbl9pbnZhbGlkX3JlZGlyZWN0OiB0cnVlLFxuICB0b2tlbl9leHBfb2Zmc2V0OiAxMCxcbiAgdG9rZW5fc2VuZF9rZXk6IGB0b2tlbmAsXG4gIHRva2VuX3NlbmRfdGVtcGxhdGU6ICcke3Rva2VufScsXG4gIHRva2VuX3NlbmRfcGxhY2U6ICdoZWFkZXInLFxuICBsb2dpbl91cmw6ICcvbG9naW4nLFxuICByZWZyZXNoVGltZTogMzAwMCxcbiAgcmVmcmVzaE9mZnNldDogNjAwMFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQ29uZmlnKHNydjogQWxhaW5Db25maWdTZXJ2aWNlKTogQWxhaW5BdXRoQ29uZmlnIHtcbiAgcmV0dXJuIHNydi5tZXJnZSgnYXV0aCcsIEFVVEhfREVGQVVMVF9DT05GSUcpITtcbn1cbiJdfQ==
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import { DOCUMENT } from '@angular/common';
|
|
3
|
-
import {
|
|
3
|
+
import { Injectable, inject } from '@angular/core';
|
|
4
|
+
import { Router } from '@angular/router';
|
|
4
5
|
import { Observable } from 'rxjs';
|
|
5
6
|
import { DA_SERVICE_TOKEN } from '../token/interface';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/router";
|
|
8
8
|
const OPENTYPE = '_delonAuthSocialType';
|
|
9
9
|
const HREFCALLBACK = '_delonAuthSocialCallbackByHref';
|
|
10
10
|
export class SocialService {
|
|
11
|
-
constructor(
|
|
12
|
-
this.tokenService =
|
|
13
|
-
this.doc =
|
|
14
|
-
this.router =
|
|
11
|
+
constructor() {
|
|
12
|
+
this.tokenService = inject(DA_SERVICE_TOKEN);
|
|
13
|
+
this.doc = inject(DOCUMENT);
|
|
14
|
+
this.router = inject(Router);
|
|
15
15
|
this._win = null;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
@@ -91,16 +91,10 @@ export class SocialService {
|
|
|
91
91
|
clearInterval(this._winTime);
|
|
92
92
|
this._winTime = null;
|
|
93
93
|
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
95
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SocialService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
95
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SocialService }); }
|
|
96
96
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SocialService, decorators: [{
|
|
98
98
|
type: Injectable
|
|
99
|
-
}]
|
|
100
|
-
|
|
101
|
-
args: [DA_SERVICE_TOKEN]
|
|
102
|
-
}] }, { type: undefined, decorators: [{
|
|
103
|
-
type: Inject,
|
|
104
|
-
args: [DOCUMENT]
|
|
105
|
-
}] }, { type: i1.Router }] });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9zb2NpYWwvc29jaWFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBOEIsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRWxGLE1BQU0sUUFBUSxHQUFHLHNCQUFzQixDQUFDO0FBQ3hDLE1BQU0sWUFBWSxHQUFHLGdDQUFnQyxDQUFDO0FBS3RELE1BQU0sT0FBTyxhQUFhO0lBS3hCLFlBQ29DLFlBQTJCLEVBQ25DLEdBQVEsRUFDMUIsTUFBYztRQUZZLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQ25DLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVBoQixTQUFJLEdBQWtCLElBQUksQ0FBQztJQVFoQyxDQUFDO0lBZ0NKOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQ0gsR0FBVyxFQUNYLFdBQW1CLEdBQUcsRUFDdEIsVUFHSSxFQUFFO1FBRU4sT0FBTyxHQUFHO1lBQ1IsSUFBSSxFQUFFLFFBQVE7WUFDZCxjQUFjLEVBQUUsNkRBQTZEO1lBQzdFLEdBQUcsT0FBTztTQUNYLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsSUFBSyxDQUFDLENBQUM7UUFDOUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0MsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUMz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QUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7OEdBaklVLGFBQWEsa0JBTWQsZ0JBQWdCLGFBQ2hCLFFBQVE7a0hBUFAsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVTs7MEJBT04sTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERBX1NFUlZJQ0VfVE9LRU4sIElUb2tlbk1vZGVsLCBJVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vdG9rZW4vaW50ZXJmYWNlJztcblxuY29uc3QgT1BFTlRZUEUgPSAnX2RlbG9uQXV0aFNvY2lhbFR5cGUnO1xuY29uc3QgSFJFRkNBTExCQUNLID0gJ19kZWxvbkF1dGhTb2NpYWxDYWxsYmFja0J5SHJlZic7XG5cbmV4cG9ydCB0eXBlIFNvY2lhbE9wZW5UeXBlID0gJ2hyZWYnIHwgJ3dpbmRvdyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTb2NpYWxTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfd2luOiBXaW5kb3cgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfd2luVGltZTogYW55O1xuICBwcml2YXRlIG9ic2VydmVyITogT2JzZXJ2ZXI8SVRva2VuTW9kZWwgfCBudWxsPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERBX1NFUlZJQ0VfVE9LRU4pIHByaXZhdGUgdG9rZW5TZXJ2aWNlOiBJVG9rZW5TZXJ2aWNlLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBhbnksXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgLyoqXG4gICAqIOS9v+eUqOeql+S9k+aJk+W8gOaOiOadg+mhte+8jOi/lOWbnuWAvOaYryBgT2JzZXJ2YWJsZTxJVG9rZW5Nb2RlbD5gIOeUqOS6juiuoumYheaOiOadg+WQjui/lOWbnueahOe7k+aenFxuICAgKlxuICAgKiBAcGFyYW0gdXJsIOiOt+WPluaOiOadg+WcsOWdgFxuICAgKiBAcGFyYW0gY2FsbGJhY2sg5Zue6LCD6Lev55Sx5Zyw5Z2AXG4gICAqIEBwYXJhbSBvcHRpb25zLndpbmRvd0ZlYXR1cmVzIOetieWQjCBgd2luZG93Lm9wZW5gIOeahCBgZmVhdHVyZXNgIOWPguaVsOWAvFxuICAgKi9cbiAgbG9naW4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgY2FsbGJhY2s/OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIHR5cGU/OiAnd2luZG93JztcbiAgICAgIHdpbmRvd0ZlYXR1cmVzPzogc3RyaW5nO1xuICAgIH1cbiAgKTogT2JzZXJ2YWJsZTxJVG9rZW5Nb2RlbD47XG5cbiAgLyoqXG4gICAqIOi3s+i9rOiHs+aOiOadg+mhtVxuICAgKlxuICAgKiBAcGFyYW0gdXJsIOiOt+WPluaOiOadg+WcsOWdgFxuICAgKiBAcGFyYW0gY2FsbGJhY2sg5Zue6LCD6Lev55Sx5Zyw5Z2AXG4gICAqL1xuICBsb2dpbihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBjYWxsYmFjaz86IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgdHlwZT86ICdocmVmJztcbiAgICB9XG4gICk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIOi3s+i9rOiHs+eZu+W9lemhte+8jOiLpeS4uiBgdHlwZT13aW5kb3dgIOaXtu+8jOi/lOWbnuWAvOaYryBgT2JzZXJ2YWJsZTxJVG9rZW5Nb2RlbD5gXG4gICAqXG4gICAqIEBwYXJhbSB1cmwg6I635Y+W5o6I5p2D5Zyw5Z2AXG4gICAqIEBwYXJhbSBjYWxsYmFjayDlvZMgYHR5cGU9aHJlZmAg5oiQ5Yqf5pe255qE5Zue6LCD6Lev55Sx5Zyw5Z2AXG4gICAqIEBwYXJhbSBvcHRpb25zLnR5cGUg5omT5byA5pa55byP77yM6buY6K6kIGB3aW5kb3dgXG4gICAqIEBwYXJhbSBvcHRpb25zLndpbmRvd0ZlYXR1cmVzIOetieWQjCBgd2luZG93Lm9wZW5gIOeahCBgZmVhdHVyZXNgIOWPguaVsOWAvFxuICAgKi9cbiAgbG9naW4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgY2FsbGJhY2s6IHN0cmluZyA9ICcvJyxcbiAgICBvcHRpb25zOiB7XG4gICAgICB0eXBlPzogU29jaWFsT3BlblR5cGU7XG4gICAgICB3aW5kb3dGZWF0dXJlcz86IHN0cmluZztcbiAgICB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxJVG9rZW5Nb2RlbCB8IG51bGw+IHwgdm9pZCB7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIHR5cGU6ICd3aW5kb3cnLFxuICAgICAgd2luZG93RmVhdHVyZXM6ICdsb2NhdGlvbj15ZXMsaGVpZ2h0PTU3MCx3aWR0aD01MjAsc2Nyb2xsYmFycz15ZXMsc3RhdHVzPXllcycsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShPUEVOVFlQRSwgb3B0aW9ucy50eXBlISk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oSFJFRkNBTExCQUNLLCBjYWxsYmFjayk7XG4gICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gJ2hyZWYnKSB7XG4gICAgICB0aGlzLmRvYy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3dpbiA9IHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycsIG9wdGlvbnMud2luZG93RmVhdHVyZXMpO1xuICAgIHRoaXMuX3dpblRpbWUgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fd2luICYmIHRoaXMuX3dpbi5jbG9zZWQpIHtcbiAgICAgICAgdGhpcy5uZ09uRGVzdHJveSgpO1xuXG4gICAgICAgIGxldCBtb2RlbCA9IHRoaXMudG9rZW5TZXJ2aWNlLmdldCgpO1xuICAgICAgICBpZiAobW9kZWwgJiYgIW1vZGVsLnRva2VuKSBtb2RlbCA9IG51bGw7XG5cbiAgICAgICAgLy8g6Kem5Y+R5Y+Y5pu06YCa55+lXG4gICAgICAgIGlmIChtb2RlbCkge1xuICAgICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldChtb2RlbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobW9kZWwpO1xuICAgICAgICB0aGlzLm9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgfSwgMTAwKTtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxJVG9rZW5Nb2RlbCB8IG51bGw+KSA9PiB7XG4gICAgICB0aGlzLm9ic2VydmVyID0gb2JzZXJ2ZXI7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICog5o6I5p2D5oiQ5Yqf5ZCO55qE5Zue6LCD5aSE55CGXG4gICAqXG4gICAqIEBwYXJhbSByYXdEYXRhIOaMh+WumuWbnuiwg+iupOivgeS/oeaBr++8jOS4uuepuuaXtuS7juagueaNruW9k+WJjVVSTOino+aekFxuICAgKi9cbiAgY2FsbGJhY2socmF3RGF0YT86IElUb2tlbk1vZGVsIHwgc3RyaW5nIHwgbnVsbCk6IElUb2tlbk1vZGVsIHtcbiAgICAvLyBmcm9tIHVyaVxuICAgIGlmICghcmF3RGF0YSAmJiB0aGlzLnJvdXRlci51cmwuaW5kZXhPZignPycpID09PSAtMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1cmwgbXVzZSBjb250YWluIGEgP2ApO1xuICAgIH1cbiAgICAvLyBwYXJzZVxuICAgIGxldCBkYXRhOiBJVG9rZW5Nb2RlbCA9IHsgdG9rZW46IGBgIH07XG4gICAgaWYgKHR5cGVvZiByYXdEYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgcmlnaHRVcmwgPSByYXdEYXRhLnNwbGl0KCc/JylbMV0uc3BsaXQoJyMnKVswXTtcbiAgICAgIGRhdGEgPSB0aGlzLnJvdXRlci5wYXJzZVVybChgLi8/JHtyaWdodFVybH1gKS5xdWVyeVBhcmFtcyBhcyBJVG9rZW5Nb2RlbDtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YSA9IHJhd0RhdGEgYXMgSVRva2VuTW9kZWw7XG4gICAgfVxuXG4gICAgaWYgKCFkYXRhIHx8ICFkYXRhLnRva2VuKSB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWRlIHRva2VuIGRhdGFgKTtcbiAgICB0aGlzLnRva2VuU2VydmljZS5zZXQoZGF0YSk7XG5cbiAgICBjb25zdCB1cmwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShIUkVGQ0FMTEJBQ0spIHx8ICcvJztcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShIUkVGQ0FMTEJBQ0spO1xuICAgIGNvbnN0IHR5cGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShPUEVOVFlQRSk7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oT1BFTlRZUEUpO1xuICAgIGlmICh0eXBlID09PSAnd2luZG93Jykge1xuICAgICAgd2luZG93LmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5fd2luVGltZSk7XG4gICAgdGhpcy5fd2luVGltZSA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
99
|
+
}] });
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9zb2NpYWwvc29jaWFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQWUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFbkUsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLENBQUM7QUFDeEMsTUFBTSxZQUFZLEdBQUcsZ0NBQWdDLENBQUM7QUFLdEQsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFFbUIsaUJBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4QyxRQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZCLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakMsU0FBSSxHQUFrQixJQUFJLENBQUM7S0EySHBDO0lBekZDOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQ0gsR0FBVyxFQUNYLFdBQW1CLEdBQUcsRUFDdEIsVUFHSSxFQUFFO1FBRU4sT0FBTyxHQUFHO1lBQ1IsSUFBSSxFQUFFLFFBQVE7WUFDZCxjQUFjLEVBQUUsNkRBQTZEO1lBQzdFLEdBQUcsT0FBTztTQUNYLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsSUFBSyxDQUFDLENBQUM7UUFDOUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFD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akIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVztRQUNULGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQzs4R0EvSFUsYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEQV9TRVJWSUNFX1RPS0VOLCBJVG9rZW5Nb2RlbCB9IGZyb20gJy4uL3Rva2VuL2ludGVyZmFjZSc7XG5cbmNvbnN0IE9QRU5UWVBFID0gJ19kZWxvbkF1dGhTb2NpYWxUeXBlJztcbmNvbnN0IEhSRUZDQUxMQkFDSyA9ICdfZGVsb25BdXRoU29jaWFsQ2FsbGJhY2tCeUhyZWYnO1xuXG5leHBvcnQgdHlwZSBTb2NpYWxPcGVuVHlwZSA9ICdocmVmJyB8ICd3aW5kb3cnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU29jaWFsU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5TZXJ2aWNlID0gaW5qZWN0KERBX1NFUlZJQ0VfVE9LRU4pO1xuICBwcml2YXRlIHJlYWRvbmx5IGRvYyA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgcHJpdmF0ZSBfd2luOiBXaW5kb3cgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfd2luVGltZTogYW55O1xuICBwcml2YXRlIG9ic2VydmVyITogT2JzZXJ2ZXI8SVRva2VuTW9kZWwgfCBudWxsPjtcblxuICAvKipcbiAgICog5L2/55So56qX5L2T5omT5byA5o6I5p2D6aG177yM6L+U5Zue5YC85pivIGBPYnNlcnZhYmxlPElUb2tlbk1vZGVsPmAg55So5LqO6K6i6ZiF5o6I5p2D5ZCO6L+U5Zue55qE57uT5p6cXG4gICAqXG4gICAqIEBwYXJhbSB1cmwg6I635Y+W5o6I5p2D5Zyw5Z2AXG4gICAqIEBwYXJhbSBjYWxsYmFjayDlm57osIPot6/nlLHlnLDlnYBcbiAgICogQHBhcmFtIG9wdGlvbnMud2luZG93RmVhdHVyZXMg562J5ZCMIGB3aW5kb3cub3BlbmAg55qEIGBmZWF0dXJlc2Ag5Y+C5pWw5YC8XG4gICAqL1xuICBsb2dpbihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBjYWxsYmFjaz86IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgdHlwZT86ICd3aW5kb3cnO1xuICAgICAgd2luZG93RmVhdHVyZXM/OiBzdHJpbmc7XG4gICAgfVxuICApOiBPYnNlcnZhYmxlPElUb2tlbk1vZGVsPjtcblxuICAvKipcbiAgICog6Lez6L2s6Iez5o6I5p2D6aG1XG4gICAqXG4gICAqIEBwYXJhbSB1cmwg6I635Y+W5o6I5p2D5Zyw5Z2AXG4gICAqIEBwYXJhbSBjYWxsYmFjayDlm57osIPot6/nlLHlnLDlnYBcbiAgICovXG4gIGxvZ2luKFxuICAgIHVybDogc3RyaW5nLFxuICAgIGNhbGxiYWNrPzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICB0eXBlPzogJ2hyZWYnO1xuICAgIH1cbiAgKTogdm9pZDtcblxuICAvKipcbiAgICog6Lez6L2s6Iez55m75b2V6aG177yM6Iul5Li6IGB0eXBlPXdpbmRvd2Ag5pe277yM6L+U5Zue5YC85pivIGBPYnNlcnZhYmxlPElUb2tlbk1vZGVsPmBcbiAgICpcbiAgICogQHBhcmFtIHVybCDojrflj5bmjojmnYPlnLDlnYBcbiAgICogQHBhcmFtIGNhbGxiYWNrIOW9kyBgdHlwZT1ocmVmYCDmiJDlip/ml7bnmoTlm57osIPot6/nlLHlnLDlnYBcbiAgICogQHBhcmFtIG9wdGlvbnMudHlwZSDmiZPlvIDmlrnlvI/vvIzpu5jorqQgYHdpbmRvd2BcbiAgICogQHBhcmFtIG9wdGlvbnMud2luZG93RmVhdHVyZXMg562J5ZCMIGB3aW5kb3cub3BlbmAg55qEIGBmZWF0dXJlc2Ag5Y+C5pWw5YC8XG4gICAqL1xuICBsb2dpbihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBjYWxsYmFjazogc3RyaW5nID0gJy8nLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIHR5cGU/OiBTb2NpYWxPcGVuVHlwZTtcbiAgICAgIHdpbmRvd0ZlYXR1cmVzPzogc3RyaW5nO1xuICAgIH0gPSB7fVxuICApOiBPYnNlcnZhYmxlPElUb2tlbk1vZGVsIHwgbnVsbD4gfCB2b2lkIHtcbiAgICBvcHRpb25zID0ge1xuICAgICAgdHlwZTogJ3dpbmRvdycsXG4gICAgICB3aW5kb3dGZWF0dXJlczogJ2xvY2F0aW9uPXllcyxoZWlnaHQ9NTcwLHdpZHRoPTUyMCxzY3JvbGxiYXJzPXllcyxzdGF0dXM9eWVzJyxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9O1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKE9QRU5UWVBFLCBvcHRpb25zLnR5cGUhKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShIUkVGQ0FMTEJBQ0ssIGNhbGxiYWNrKTtcbiAgICBpZiAob3B0aW9ucy50eXBlID09PSAnaHJlZicpIHtcbiAgICAgIHRoaXMuZG9jLmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fd2luID0gd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJywgb3B0aW9ucy53aW5kb3dGZWF0dXJlcyk7XG4gICAgdGhpcy5fd2luVGltZSA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLl93aW4gJiYgdGhpcy5fd2luLmNsb3NlZCkge1xuICAgICAgICB0aGlzLm5nT25EZXN0cm95KCk7XG5cbiAgICAgICAgbGV0IG1vZGVsID0gdGhpcy50b2tlblNlcnZpY2UuZ2V0KCk7XG4gICAgICAgIGlmIChtb2RlbCAmJiAhbW9kZWwudG9rZW4pIG1vZGVsID0gbnVsbDtcblxuICAgICAgICAvLyDop6blj5Hlj5jmm7TpgJrnn6VcbiAgICAgICAgaWYgKG1vZGVsKSB7XG4gICAgICAgICAgdGhpcy50b2tlblNlcnZpY2Uuc2V0KG1vZGVsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChtb2RlbCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IE9ic2VydmVyPElUb2tlbk1vZGVsIHwgbnVsbD4pID0+IHtcbiAgICAgIHRoaXMub2JzZXJ2ZXIgPSBvYnNlcnZlcjtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmjojmnYPmiJDlip/lkI7nmoTlm57osIPlpITnkIZcbiAgICpcbiAgICogQHBhcmFtIHJhd0RhdGEg5oyH5a6a5Zue6LCD6K6k6K+B5L+h5oGv77yM5Li656m65pe25LuO5qC55o2u5b2T5YmNVVJM6Kej5p6QXG4gICAqL1xuICBjYWxsYmFjayhyYXdEYXRhPzogSVRva2VuTW9kZWwgfCBzdHJpbmcgfCBudWxsKTogSVRva2VuTW9kZWwge1xuICAgIC8vIGZyb20gdXJpXG4gICAgaWYgKCFyYXdEYXRhICYmIHRoaXMucm91dGVyLnVybC5pbmRleE9mKCc/JykgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVybCBtdXNlIGNvbnRhaW4gYSA/YCk7XG4gICAgfVxuICAgIC8vIHBhcnNlXG4gICAgbGV0IGRhdGE6IElUb2tlbk1vZGVsID0geyB0b2tlbjogYGAgfTtcbiAgICBpZiAodHlwZW9mIHJhd0RhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCByaWdodFVybCA9IHJhd0RhdGEuc3BsaXQoJz8nKVsxXS5zcGxpdCgnIycpWzBdO1xuICAgICAgZGF0YSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKGAuLz8ke3JpZ2h0VXJsfWApLnF1ZXJ5UGFyYW1zIGFzIElUb2tlbk1vZGVsO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhID0gcmF3RGF0YSBhcyBJVG9rZW5Nb2RlbDtcbiAgICB9XG5cbiAgICBpZiAoIWRhdGEgfHwgIWRhdGEudG9rZW4pIHRocm93IG5ldyBFcnJvcihgaW52YWxpZGUgdG9rZW4gZGF0YWApO1xuICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldChkYXRhKTtcblxuICAgIGNvbnN0IHVybCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKEhSRUZDQUxMQkFDSykgfHwgJy8nO1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKEhSRUZDQUxMQkFDSyk7XG4gICAgY29uc3QgdHlwZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKE9QRU5UWVBFKTtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShPUEVOVFlQRSk7XG4gICAgaWYgKHR5cGUgPT09ICd3aW5kb3cnKSB7XG4gICAgICB3aW5kb3cuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLl93aW5UaW1lKTtcbiAgICB0aGlzLl93aW5UaW1lID0gbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { CookieService } from '@delon/util/browser';
|
|
1
3
|
/**
|
|
2
4
|
* `cookie` storage
|
|
3
5
|
*
|
|
@@ -6,8 +8,8 @@
|
|
|
6
8
|
* ```
|
|
7
9
|
*/
|
|
8
10
|
export class CookieStorageStore {
|
|
9
|
-
constructor(
|
|
10
|
-
this.srv =
|
|
11
|
+
constructor() {
|
|
12
|
+
this.srv = inject(CookieService);
|
|
11
13
|
}
|
|
12
14
|
get(key) {
|
|
13
15
|
try {
|
|
@@ -29,4 +31,4 @@ export class CookieStorageStore {
|
|
|
29
31
|
this.srv.remove(key);
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL3N0b3JlL2Nvb2tpZS1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFLcEQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUNtQixRQUFHLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBc0IvQyxDQUFDO0lBcEJDLEdBQUcsQ0FBQyxHQUFXO1FBQ2IsSUFBSSxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ1osSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2xELE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0RBQWdELEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLENBQUM7WUFDRCxPQUFPLEVBQWlCLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQXFDO1FBQ3BELE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ0BkZWxvbi91dGlsL2Jyb3dzZXInO1xuXG5pbXBvcnQgeyBJU3RvcmUgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBJVG9rZW5Nb2RlbCB9IGZyb20gJy4uL3Rva2VuL2ludGVyZmFjZSc7XG5cbi8qKlxuICogYGNvb2tpZWAgc3RvcmFnZVxuICpcbiAqIGBgYHRzXG4gKiBwcm92aWRlQXV0aCh3aXRoSldUKCksIHdpdGhDb29raWUoKSlcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ29va2llU3RvcmFnZVN0b3JlIGltcGxlbWVudHMgSVN0b3JlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzcnYgPSBpbmplY3QoQ29va2llU2VydmljZSk7XG5cbiAgZ2V0KGtleTogc3RyaW5nKTogSVRva2VuTW9kZWwge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLnNydi5nZXQoa2V5KSB8fCAne30nKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBDb29raWVTdG9yYWdlU3RvcmU6IEludmFsaWQga2V5LXZhbHVlIGZvcm1hdCAke2tleX1gLCBleCk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge30gYXMgSVRva2VuTW9kZWw7XG4gICAgfVxuICB9XG5cbiAgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogSVRva2VuTW9kZWwgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZXhwaXJlcyA9ICh2YWx1ZT8uZXhwaXJlZCA/PyAwKSAvIDFlMztcbiAgICB0aGlzLnNydi5wdXQoa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSA/PyB7fSksIHsgZXhwaXJlcyB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJlbW92ZShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc3J2LnJlbW92ZShrZXkpO1xuICB9XG59XG4iXX0=
|
|
@@ -31,4 +31,4 @@ export function throwErr(req, options) {
|
|
|
31
31
|
observer.error(res);
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL3Rva2VuL2Jhc2UuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBMEIsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBSTVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUzQyxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQXlCLEVBQUUsT0FBd0I7SUFDN0UsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNsRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbkMsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQXlCLEVBQUUsT0FBd0I7SUFDMUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWpCLCtEQUErRDtJQUMvRCxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsUUFBa0MsRUFBRSxFQUFFO1FBQzNELElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNsRCxVQUFVLEdBQUcsZ1pBQWdaLENBQUM7UUFDaGEsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQWlCLENBQUM7WUFDaEMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHO1lBQ1osT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1lBQ3BCLE1BQU0sRUFBRSxHQUFHO1lBQ1gsVUFBVTtTQUNYLENBQUMsQ0FBQztRQUNILFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBbGFpbkF1dGhDb25maWcgfSBmcm9tICdAZGVsb24vdXRpbC9jb25maWcnO1xuXG5pbXBvcnQgeyBUb0xvZ2luIH0gZnJvbSAnLi9oZWxwZXInO1xuaW1wb3J0IHsgQUxMT1dfQU5PTllNT1VTIH0gZnJvbSAnLi4vdG9rZW4nO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNBbm9ueW1vdXMocmVxOiBIdHRwUmVxdWVzdDx1bmtub3duPiwgb3B0aW9uczogQWxhaW5BdXRoQ29uZmlnKTogYm9vbGVhbiB7XG4gIGlmIChyZXEuY29udGV4dC5nZXQoQUxMT1dfQU5PTllNT1VTKSkgcmV0dXJuIHRydWU7XG4gIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMuaWdub3JlcykpIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygb3B0aW9ucy5pZ25vcmVzKSB7XG4gICAgICBpZiAoaXRlbS50ZXN0KHJlcS51cmwpKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dFcnIocmVxOiBIdHRwUmVxdWVzdDx1bmtub3duPiwgb3B0aW9uczogQWxhaW5BdXRoQ29uZmlnKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgVG9Mb2dpbihvcHRpb25zKTtcblxuICAvLyBJbnRlcnJ1cHQgSHR0cCByZXF1ZXN0LCBzbyBuZWVkIHRvIGdlbmVyYXRlIGEgbmV3IE9ic2VydmFibGVcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8SHR0cEV2ZW50PGFueT4+KSA9PiB7XG4gICAgbGV0IHN0YXR1c1RleHQgPSAnJztcbiAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICBzdGF0dXNUZXh0ID0gYOadpeiHqiBAZGVsb24vYXV0aCDnmoTmi6bmiKrvvIzmiYDor7fmsYJVUkzmnKrmjojmnYPvvIzoi6XmmK/nmbvlvZVBUEnlj6/liqDlhaUgbmV3IEh0dHBDb250ZXh0KCkuc2V0KEFMTE9XX0FOT05ZTU9VUywgdHJ1ZSkg5p2l6KGo56S65b+955Wl5qCh6aqM77yM5pu05aSa5pa55rOV6K+35Y+C6ICD77yaIGh0dHBzOi8vbmctYWxhaW4uY29tL2F1dGgvZ2V0dGluZy1zdGFydGVkI0FsYWluQXV0aENvbmZpZ1xcblRoZSBpbnRlcmNlcHRpb24gZnJvbSBAZGVsb24vYXV0aCwgdGhlIHJlcXVlc3RlZCBVUkwgaXMgbm90IGF1dGhvcml6ZWQuIElmIHRoZSBsb2dpbiBBUEkgY2FuIGFkZCBuZXcgSHR0cENvbnRleHQoKS5zZXQoQUxMT1dfQU5PTllNT1VTLCB0cnVlKSB0byBpZ25vcmUgdGhlIGNoZWNrLCBwbGVhc2UgcmVmZXIgdG86IGh0dHBzOi8vbmctYWxhaW4uY29tL2F1dGgvZ2V0dGluZy1zdGFydGVkI0FsYWluQXV0aENvbmZpZ2A7XG4gICAgfVxuICAgIGNvbnN0IHJlcyA9IG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7XG4gICAgICB1cmw6IHJlcS51cmwsXG4gICAgICBoZWFkZXJzOiByZXEuaGVhZGVycyxcbiAgICAgIHN0YXR1czogNDAxLFxuICAgICAgc3RhdHVzVGV4dFxuICAgIH0pO1xuICAgIG9ic2VydmVyLmVycm9yKHJlcyk7XG4gIH0pO1xufVxuIl19
|
|
@@ -32,4 +32,4 @@ export function ToLogin(options, url) {
|
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvdG9rZW4vaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUl6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQWlCLE1BQU0sYUFBYSxDQUFDO0FBSTlELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBOEI7SUFDeEQsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3BGLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQW9CLEVBQUUsTUFBYztJQUMzRCxJQUFJLENBQUM7UUFDSCxPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFBQyxPQUFPLEdBQVksRUFBRSxDQUFDO1FBQ3RCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBSSxHQUEyQixDQUFDLE9BQU8scUJBQXFCLENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsT0FBd0IsRUFBRSxHQUFZO0lBQzVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQWtCLENBQUM7SUFDeEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLEtBQUssQ0FBQyxRQUFTLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3hDLElBQUksT0FBTyxDQUFDLHNCQUFzQixLQUFLLElBQUksRUFBRSxDQUFDO1FBQzVDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQzdDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFtQixDQUFDO1lBQ2xELENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEFsYWluQXV0aENvbmZpZyB9IGZyb20gJ0BkZWxvbi91dGlsL2NvbmZpZyc7XG5cbmltcG9ydCB7IERBX1NFUlZJQ0VfVE9LRU4sIElUb2tlblNlcnZpY2UgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBKV1RUb2tlbk1vZGVsIH0gZnJvbSAnLi9qd3Qvand0Lm1vZGVsJztcbmltcG9ydCB7IFNpbXBsZVRva2VuTW9kZWwgfSBmcm9tICcuL3NpbXBsZS9zaW1wbGUubW9kZWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tTaW1wbGUobW9kZWw6IFNpbXBsZVRva2VuTW9kZWwgfCBudWxsKTogYm9vbGVhbiB7XG4gIHJldHVybiBtb2RlbCAhPSBudWxsICYmIHR5cGVvZiBtb2RlbC50b2tlbiA9PT0gJ3N0cmluZycgJiYgbW9kZWwudG9rZW4ubGVuZ3RoID4gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrSnd0KG1vZGVsOiBKV1RUb2tlbk1vZGVsLCBvZmZzZXQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIHJldHVybiBtb2RlbCAhPSBudWxsICYmICEhbW9kZWwudG9rZW4gJiYgIW1vZGVsLmlzRXhwaXJlZChvZmZzZXQpO1xuICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICBjb25zb2xlLndhcm4oYCR7KGVyciBhcyB7IG1lc3NhZ2U6IHN0cmluZyB9KS5tZXNzYWdlfSwganVtcCB0byBsb2dpbl91cmxgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUb0xvZ2luKG9wdGlvbnM6IEFsYWluQXV0aENvbmZpZywgdXJsPzogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBjb25zdCB0b2tlbiA9IGluamVjdChEQV9TRVJWSUNFX1RPS0VOKSBhcyBJVG9rZW5TZXJ2aWNlO1xuICBjb25zdCBkb2MgPSBpbmplY3QoRE9DVU1FTlQpO1xuICB0b2tlbi5yZWZlcnJlciEudXJsID0gdXJsIHx8IHJvdXRlci51cmw7XG4gIGlmIChvcHRpb25zLnRva2VuX2ludmFsaWRfcmVkaXJlY3QgPT09IHRydWUpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICgvXmh0dHBzPzpcXC9cXC8vZy50ZXN0KG9wdGlvbnMubG9naW5fdXJsISkpIHtcbiAgICAgICAgZG9jLmxvY2F0aW9uLmhyZWYgPSBvcHRpb25zLmxvZ2luX3VybCBhcyBzdHJpbmc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb3V0ZXIubmF2aWdhdGUoW29wdGlvbnMubG9naW5fdXJsXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
2
|
import { JWTTokenModel } from './jwt.model';
|
|
3
3
|
import { CheckJwt, ToLogin } from '../helper';
|
|
4
4
|
import { DA_SERVICE_TOKEN } from '../interface';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class AuthJWTGuardService {
|
|
7
|
-
constructor(
|
|
8
|
-
this.srv =
|
|
7
|
+
constructor() {
|
|
8
|
+
this.srv = inject(DA_SERVICE_TOKEN);
|
|
9
9
|
}
|
|
10
10
|
process(url) {
|
|
11
11
|
const cog = this.srv.options;
|
|
@@ -15,16 +15,13 @@ export class AuthJWTGuardService {
|
|
|
15
15
|
}
|
|
16
16
|
return res;
|
|
17
17
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
19
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AuthJWTGuardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AuthJWTGuardService, providedIn: 'root' }); }
|
|
20
20
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AuthJWTGuardService, decorators: [{
|
|
22
22
|
type: Injectable,
|
|
23
23
|
args: [{ providedIn: 'root' }]
|
|
24
|
-
}]
|
|
25
|
-
type: Inject,
|
|
26
|
-
args: [DA_SERVICE_TOKEN]
|
|
27
|
-
}] }] });
|
|
24
|
+
}] });
|
|
28
25
|
/**
|
|
29
26
|
* JWT 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).
|
|
30
27
|
*
|
|
@@ -61,4 +58,4 @@ export const authJWTCanActivateChild = (_, state) => inject(AuthJWTGuardService)
|
|
|
61
58
|
* ```
|
|
62
59
|
*/
|
|
63
60
|
export const authJWTCanMatch = route => inject(AuthJWTGuardService).process(route.path);
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0Lmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvdG9rZW4vand0L2p3dC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFHaEQsTUFBTSxPQUFPLG1CQUFtQjtJQURoQztRQUVtQixRQUFHLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FVakQ7SUFSQyxPQUFPLENBQUMsR0FBWTtRQUNsQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUM3QixNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQWdCLGFBQWEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxnQkFBaUIsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs4R0FWVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUROLE1BQU07OzJGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQWNsQzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQWtCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUU5Rzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQXVCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUV4SDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFlLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuQWN0aXZhdGVDaGlsZEZuLCBDYW5BY3RpdmF0ZUZuLCBDYW5NYXRjaEZuIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgSldUVG9rZW5Nb2RlbCB9IGZyb20gJy4vand0Lm1vZGVsJztcbmltcG9ydCB7IENoZWNrSnd0LCBUb0xvZ2luIH0gZnJvbSAnLi4vaGVscGVyJztcbmltcG9ydCB7IERBX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEF1dGhKV1RHdWFyZFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHNydiA9IGluamVjdChEQV9TRVJWSUNFX1RPS0VOKTtcblxuICBwcm9jZXNzKHVybD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvZyA9IHRoaXMuc3J2Lm9wdGlvbnM7XG4gICAgY29uc3QgcmVzID0gQ2hlY2tKd3QodGhpcy5zcnYuZ2V0PEpXVFRva2VuTW9kZWw+KEpXVFRva2VuTW9kZWwpLCBjb2cudG9rZW5fZXhwX29mZnNldCEpO1xuICAgIGlmICghcmVzKSB7XG4gICAgICBUb0xvZ2luKGNvZywgdXJsKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxufVxuXG4vKipcbiAqIEpXVCDot6/nlLHlrojljassIFtBQ0wgRG9jdW1lbnRdKGh0dHBzOi8vbmctYWxhaW4uY29tL2F1dGgvZ3VhcmQpLlxuICpcbiAqIGBgYHRzXG4gKiBkYXRhOiB7XG4gKiAgcGF0aDogJ2hvbWUnLFxuICogIGNhbkFjdGl2YXRlOiBbIGF1dGhKV1RDYW5BY3RpdmF0ZSBdLFxuICogIGRhdGE6IHsgZ3VhcmQ6ICd1c2VyMScgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBhdXRoSldUQ2FuQWN0aXZhdGU6IENhbkFjdGl2YXRlRm4gPSAoXywgc3RhdGUpID0+IGluamVjdChBdXRoSldUR3VhcmRTZXJ2aWNlKS5wcm9jZXNzKHN0YXRlLnVybCk7XG5cbi8qKlxuICogSldUIOi3r+eUseWuiOWNqywgW0FDTCBEb2N1bWVudF0oaHR0cHM6Ly9uZy1hbGFpbi5jb20vYXV0aC9ndWFyZCkuXG4gKlxuICogYGBgdHNcbiAqIGRhdGE6IHtcbiAqICBwYXRoOiAnaG9tZScsXG4gKiAgY2FuQWN0aXZhdGVDaGlsZDogWyBhdXRoSldUQ2FuQWN0aXZhdGVDaGlsZCBdLFxuICogIGRhdGE6IHsgZ3VhcmQ6ICd1c2VyMScgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBhdXRoSldUQ2FuQWN0aXZhdGVDaGlsZDogQ2FuQWN0aXZhdGVDaGlsZEZuID0gKF8sIHN0YXRlKSA9PiBpbmplY3QoQXV0aEpXVEd1YXJkU2VydmljZSkucHJvY2VzcyhzdGF0ZS51cmwpO1xuXG4vKipcbiAqIEpXVCDot6/nlLHlrojljassIFtBQ0wgRG9jdW1lbnRdKGh0dHBzOi8vbmctYWxhaW4uY29tL2F1dGgvZ3VhcmQpLlxuICpcbiAqIGBgYHRzXG4gKiBkYXRhOiB7XG4gKiAgcGF0aDogJ2hvbWUnLFxuICogIGNhbk1hdGNoOiBbIGF1dGhKV1RDYW5NYXRjaCBdLFxuICogIGRhdGE6IHsgZ3VhcmQ6ICd1c2VyMScgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBhdXRoSldUQ2FuTWF0Y2g6IENhbk1hdGNoRm4gPSByb3V0ZSA9PiBpbmplY3QoQXV0aEpXVEd1YXJkU2VydmljZSkucHJvY2Vzcyhyb3V0ZS5wYXRoKTtcbiJdfQ==
|
|
@@ -49,4 +49,4 @@ function b64DecodeUnicode(str) {
|
|
|
49
49
|
})
|
|
50
50
|
.join(''));
|
|
51
51
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL3Rva2VuL2p3dC9qd3QuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxlQUFlLENBQUMsR0FBVztJQUN6QyxJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELFFBQVEsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMxQixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDUCxNQUFNO1FBQ1IsQ0FBQztRQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNQLE1BQU0sSUFBSSxJQUFJLENBQUM7WUFDZixNQUFNO1FBQ1IsQ0FBQztRQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNQLE1BQU0sSUFBSSxHQUFHLENBQUM7WUFDZCxNQUFNO1FBQ1IsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxDQUFDLENBQUM7UUFDdkYsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUFXO0lBQzVCLE1BQU0sS0FBSyxHQUFHLG1FQUFtRSxDQUFDO0lBQ2xGLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVoQixHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFckM7SUFDRSxpQ0FBaUM7SUFDakMsOERBQThEO0lBQzlELElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFPLEVBQUUsTUFBVyxFQUFFLEdBQUcsR0FBRyxDQUFDO0lBQ3pDLHFCQUFxQjtJQUNyQixDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDNUIsNEVBQTRFO0lBQzVFLENBQUMsTUFBTTtRQUNQLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUMxQyx5Q0FBeUM7WUFDekMsa0RBQWtEO1lBQ2xELEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDLEVBQ0wsQ0FBQztRQUNELHlEQUF5RDtRQUN6RCxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELDhHQUE4RztBQUM5RyxTQUFTLGdCQUFnQixDQUFDLEdBQVc7SUFDbkMsT0FBTyxrQkFBa0IsQ0FDdkIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHO1NBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRTtRQUNsQyxPQUFPLElBQUksS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDN0QsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUNaLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHVybEJhc2U2NERlY29kZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBvdXRwdXQgPSBzdHIucmVwbGFjZSgvLS9nLCAnKycpLnJlcGxhY2UoL18vZywgJy8nKTtcbiAgc3dpdGNoIChvdXRwdXQubGVuZ3RoICUgNCkge1xuICAgIGNhc2UgMDoge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgMjoge1xuICAgICAgb3V0cHV0ICs9ICc9PSc7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAzOiB7XG4gICAgICBvdXRwdXQgKz0gJz0nO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJ2F0b2InIGZhaWxlZDogVGhlIHN0cmluZyB0byBiZSBkZWNvZGVkIGlzIG5vdCBjb3JyZWN0bHkgZW5jb2RlZC5gKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGI2NERlY29kZVVuaWNvZGUob3V0cHV0KTtcbn1cblxuZnVuY3Rpb24gYjY0ZGVjb2RlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0nO1xuICBsZXQgb3V0cHV0ID0gJyc7XG5cbiAgc3RyID0gU3RyaW5nKHN0cikucmVwbGFjZSgvPSskLywgJycpO1xuXG4gIGZvciAoXG4gICAgLy8gaW5pdGlhbGl6ZSByZXN1bHQgYW5kIGNvdW50ZXJzXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBsZXQgYmMgPSAwLCBiczogYW55LCBidWZmZXI6IGFueSwgaWR4ID0gMDtcbiAgICAvLyBnZXQgbmV4dCBjaGFyYWN0ZXJcbiAgICAoYnVmZmVyID0gc3RyLmNoYXJBdChpZHgrKykpO1xuICAgIC8vIGNoYXJhY3RlciBmb3VuZCBpbiB0YWJsZT8gaW5pdGlhbGl6ZSBiaXQgc3RvcmFnZSBhbmQgYWRkIGl0cyBhc2NpaSB2YWx1ZTtcbiAgICB+YnVmZmVyICYmXG4gICAgKChicyA9IGJjICUgNCA/IGJzICogNjQgKyBidWZmZXIgOiBidWZmZXIpLFxuICAgIC8vIGFuZCBpZiBub3QgZmlyc3Qgb2YgZWFjaCA0IGNoYXJhY3RlcnMsXG4gICAgLy8gY29udmVydCB0aGUgZmlyc3QgOCBiaXRzIHRvIG9uZSBhc2NpaSBjaGFyYWN0ZXJcbiAgICBiYysrICUgNClcbiAgICAgID8gKG91dHB1dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSAmIChicyA+PiAoKC0yICogYmMpICYgNikpKSlcbiAgICAgIDogMFxuICApIHtcbiAgICAvLyB0cnkgdG8gZmluZCBjaGFyYWN0ZXIgaW4gdGFibGUgKDAtNjMsIG5vdCBmb3VuZCA9PiAtMSlcbiAgICBidWZmZXIgPSBjaGFycy5pbmRleE9mKGJ1ZmZlcik7XG4gIH1cbiAgcmV0dXJuIG91dHB1dDtcbn1cblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vZG9jcy9XZWIvQVBJL1dpbmRvd0Jhc2U2NC9CYXNlNjRfZW5jb2RpbmdfYW5kX2RlY29kaW5nI1RoZV9Vbmljb2RlX1Byb2JsZW1cbmZ1bmN0aW9uIGI2NERlY29kZVVuaWNvZGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KFxuICAgIEFycmF5LnByb3RvdHlwZS5tYXBcbiAgICAgIC5jYWxsKGI2NGRlY29kZShzdHIpLCAoYzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBgJSR7YDAwJHtjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpfWAuc2xpY2UoLTIpfWA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oJycpXG4gICk7XG59XG4iXX0=
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
2
|
import { CheckSimple, ToLogin } from '../helper';
|
|
3
3
|
import { DA_SERVICE_TOKEN } from '../interface';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class AuthSimpleGuardService {
|
|
6
|
-
constructor(
|
|
7
|
-
this.srv =
|
|
6
|
+
constructor() {
|
|
7
|
+
this.srv = inject(DA_SERVICE_TOKEN);
|
|
8
8
|
}
|
|
9
9
|
process(url) {
|
|
10
10
|
const res = CheckSimple(this.srv.get());
|
|
@@ -13,16 +13,13 @@ export class AuthSimpleGuardService {
|
|
|
13
13
|
}
|
|
14
14
|
return res;
|
|
15
15
|
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
17
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AuthSimpleGuardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
17
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AuthSimpleGuardService, providedIn: 'root' }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AuthSimpleGuardService, decorators: [{
|
|
20
20
|
type: Injectable,
|
|
21
21
|
args: [{ providedIn: 'root' }]
|
|
22
|
-
}]
|
|
23
|
-
type: Inject,
|
|
24
|
-
args: [DA_SERVICE_TOKEN]
|
|
25
|
-
}] }] });
|
|
22
|
+
}] });
|
|
26
23
|
/**
|
|
27
24
|
* Simple 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).
|
|
28
25
|
*
|
|
@@ -59,4 +56,4 @@ export const authSimpleCanActivateChild = (_, state) => inject(AuthSimpleGuardSe
|
|
|
59
56
|
* ```
|
|
60
57
|
*/
|
|
61
58
|
export const authSimpleCanMatch = route => inject(AuthSimpleGuardService).process(route.path);
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvdG9rZW4vc2ltcGxlL3NpbXBsZS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBR2hELE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFFbUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBU2pEO0lBUEMsT0FBTyxDQUFDLEdBQVk7UUFDbEIsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFzQixDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7OEdBVFUsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FEVCxNQUFNOzsyRkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFhbEM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFrQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFcEg7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUF1QixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUN6RSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRXBEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBZSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlQ2hpbGRGbiwgQ2FuQWN0aXZhdGVGbiwgQ2FuTWF0Y2hGbiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFNpbXBsZVRva2VuTW9kZWwgfSBmcm9tICcuL3NpbXBsZS5tb2RlbCc7XG5pbXBvcnQgeyBDaGVja1NpbXBsZSwgVG9Mb2dpbiB9IGZyb20gJy4uL2hlbHBlcic7XG5pbXBvcnQgeyBEQV9TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRoU2ltcGxlR3VhcmRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzcnYgPSBpbmplY3QoREFfU0VSVklDRV9UT0tFTik7XG5cbiAgcHJvY2Vzcyh1cmw/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXMgPSBDaGVja1NpbXBsZSh0aGlzLnNydi5nZXQoKSBhcyBTaW1wbGVUb2tlbk1vZGVsKTtcbiAgICBpZiAoIXJlcykge1xuICAgICAgVG9Mb2dpbih0aGlzLnNydi5vcHRpb25zLCB1cmwpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG59XG5cbi8qKlxuICogU2ltcGxlIOi3r+eUseWuiOWNqywgW0FDTCBEb2N1bWVudF0oaHR0cHM6Ly9uZy1hbGFpbi5jb20vYXV0aC9ndWFyZCkuXG4gKlxuICogYGBgdHNcbiAqIGRhdGE6IHtcbiAqICBwYXRoOiAnaG9tZScsXG4gKiAgY2FuQWN0aXZhdGU6IFsgYXV0aFNpbXBsZUNhbkFjdGl2YXRlIF0sXG4gKiAgZGF0YTogeyBndWFyZDogJ3VzZXIxJyB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGF1dGhTaW1wbGVDYW5BY3RpdmF0ZTogQ2FuQWN0aXZhdGVGbiA9IChfLCBzdGF0ZSkgPT4gaW5qZWN0KEF1dGhTaW1wbGVHdWFyZFNlcnZpY2UpLnByb2Nlc3Moc3RhdGUudXJsKTtcblxuLyoqXG4gKiBTaW1wbGUg6Lev55Sx5a6I5Y2rLCBbQUNMIERvY3VtZW50XShodHRwczovL25nLWFsYWluLmNvbS9hdXRoL2d1YXJkKS5cbiAqXG4gKiBgYGB0c1xuICogZGF0YToge1xuICogIHBhdGg6ICdob21lJyxcbiAqICBjYW5BY3RpdmF0ZUNoaWxkOiBbIGF1dGhTaW1wbGVDYW5BY3RpdmF0ZUNoaWxkIF0sXG4gKiAgZGF0YTogeyBndWFyZDogJ3VzZXIxJyB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGF1dGhTaW1wbGVDYW5BY3RpdmF0ZUNoaWxkOiBDYW5BY3RpdmF0ZUNoaWxkRm4gPSAoXywgc3RhdGUpID0+XG4gIGluamVjdChBdXRoU2ltcGxlR3VhcmRTZXJ2aWNlKS5wcm9jZXNzKHN0YXRlLnVybCk7XG5cbi8qKlxuICogU2ltcGxlIOi3r+eUseWuiOWNqywgW0FDTCBEb2N1bWVudF0oaHR0cHM6Ly9uZy1hbGFpbi5jb20vYXV0aC9ndWFyZCkuXG4gKlxuICogYGBgdHNcbiAqIGRhdGE6IHtcbiAqICBwYXRoOiAnaG9tZScsXG4gKiAgY2FuTWF0Y2g6IFsgYXV0aFNpbXBsZUNhbk1hdGNoIF0sXG4gKiAgZGF0YTogeyBndWFyZDogJ3VzZXIxJyB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGF1dGhTaW1wbGVDYW5NYXRjaDogQ2FuTWF0Y2hGbiA9IHJvdXRlID0+IGluamVjdChBdXRoU2ltcGxlR3VhcmRTZXJ2aWNlKS5wcm9jZXNzKHJvdXRlLnBhdGgpO1xuIl19
|
|
@@ -39,4 +39,4 @@ export const authSimpleInterceptor = (req, next) => {
|
|
|
39
39
|
return next(newReq(req, model, options));
|
|
40
40
|
return throwErr(req, options);
|
|
41
41
|
};
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvdG9rZW4vc2ltcGxlL3NpbXBsZS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBbUIsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRCxTQUFTLE1BQU0sQ0FBQyxHQUF5QixFQUFFLEtBQXVCLEVBQUUsT0FBd0I7SUFDMUYsTUFBTSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUN4RCxNQUFNLEtBQUssR0FBRyxtQkFBb0IsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RixRQUFRLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2pDLEtBQUssUUFBUTtZQUNYLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztZQUNwQixHQUFHLENBQUMsY0FBZSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzdCLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUNkLFVBQVUsRUFBRSxHQUFHO2FBQ2hCLENBQUMsQ0FBQztZQUNILE1BQU07UUFDUixLQUFLLE1BQU07WUFDVCxNQUFNLElBQUksR0FBUSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsY0FBZSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzlCLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUNkLElBQUk7YUFDTCxDQUFDLENBQUM7WUFDSCxNQUFNO1FBQ1IsS0FBSyxLQUFLO1lBQ1IsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQ2QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWUsRUFBRSxLQUFLLENBQUM7YUFDbEQsQ0FBQyxDQUFDO1lBQ0gsTUFBTTtJQUNWLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBc0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDcEUsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFFeEQsSUFBSSxXQUFXLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWhELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsRUFBc0IsQ0FBQztJQUNqRSxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRWpFLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBIdHRwSW50ZXJjZXB0b3JGbiwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWxhaW5BdXRoQ29uZmlnLCBBbGFpbkNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAZGVsb24vdXRpbC9jb25maWcnO1xuXG5pbXBvcnQgeyBTaW1wbGVUb2tlbk1vZGVsIH0gZnJvbSAnLi9zaW1wbGUubW9kZWwnO1xuaW1wb3J0IHsgbWVyZ2VDb25maWcgfSBmcm9tICcuLi8uLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgeyBpc0Fub255bW91cywgdGhyb3dFcnIgfSBmcm9tICcuLi9iYXNlLmludGVyY2VwdG9yJztcbmltcG9ydCB7IENoZWNrU2ltcGxlIH0gZnJvbSAnLi4vaGVscGVyJztcbmltcG9ydCB7IERBX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuXG5mdW5jdGlvbiBuZXdSZXEocmVxOiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbW9kZWw6IFNpbXBsZVRva2VuTW9kZWwsIG9wdGlvbnM6IEFsYWluQXV0aENvbmZpZyk6IEh0dHBSZXF1ZXN0PHVua25vd24+IHtcbiAgY29uc3QgeyB0b2tlbl9zZW5kX3RlbXBsYXRlLCB0b2tlbl9zZW5kX2tleSB9ID0gb3B0aW9ucztcbiAgY29uc3QgdG9rZW4gPSB0b2tlbl9zZW5kX3RlbXBsYXRlIS5yZXBsYWNlKC9cXCRcXHsoW1xcd10rKVxcfS9nLCAoXzogc3RyaW5nLCBnKSA9PiBtb2RlbFtnXSk7XG4gIHN3aXRjaCAob3B0aW9ucy50b2tlbl9zZW5kX3BsYWNlKSB7XG4gICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgICBvYmpbdG9rZW5fc2VuZF9rZXkhXSA9IHRva2VuO1xuICAgICAgcmVxID0gcmVxLmNsb25lKHtcbiAgICAgICAgc2V0SGVhZGVyczogb2JqXG4gICAgICB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JvZHknOlxuICAgICAgY29uc3QgYm9keTogYW55ID0gcmVxLmJvZHkgfHwge307XG4gICAgICBib2R5W3Rva2VuX3NlbmRfa2V5IV0gPSB0b2tlbjtcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgIGJvZHlcbiAgICAgIH0pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAndXJsJzpcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgIHBhcmFtczogcmVxLnBhcmFtcy5hcHBlbmQodG9rZW5fc2VuZF9rZXkhLCB0b2tlbilcbiAgICAgIH0pO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIHJlcTtcbn1cblxuZXhwb3J0IGNvbnN0IGF1dGhTaW1wbGVJbnRlcmNlcHRvcjogSHR0cEludGVyY2VwdG9yRm4gPSAocmVxLCBuZXh0KSA9PiB7XG4gIGNvbnN0IG9wdGlvbnMgPSBtZXJnZUNvbmZpZyhpbmplY3QoQWxhaW5Db25maWdTZXJ2aWNlKSk7XG5cbiAgaWYgKGlzQW5vbnltb3VzKHJlcSwgb3B0aW9ucykpIHJldHVybiBuZXh0KHJlcSk7XG5cbiAgY29uc3QgbW9kZWwgPSBpbmplY3QoREFfU0VSVklDRV9UT0tFTikuZ2V0KCkgYXMgU2ltcGxlVG9rZW5Nb2RlbDtcbiAgaWYgKENoZWNrU2ltcGxlKG1vZGVsKSkgcmV0dXJuIG5leHQobmV3UmVxKHJlcSwgbW9kZWwsIG9wdGlvbnMpKTtcblxuICByZXR1cm4gdGhyb3dFcnIocmVxLCBvcHRpb25zKTtcbn07XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { inject,
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject, interval, Subject, filter, map, share } from 'rxjs';
|
|
3
3
|
import { AlainConfigService } from '@delon/util/config';
|
|
4
4
|
import { mergeConfig } from '../auth.config';
|
|
@@ -6,14 +6,14 @@ import { DA_STORE_TOKEN } from '../store/interface';
|
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@delon/util/config";
|
|
8
8
|
export function DA_SERVICE_TOKEN_FACTORY() {
|
|
9
|
-
return new TokenService(inject(AlainConfigService)
|
|
9
|
+
return new TokenService(inject(AlainConfigService));
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* 维护Token信息服务,[在线文档](https://ng-alain.com/auth)
|
|
13
13
|
*/
|
|
14
14
|
export class TokenService {
|
|
15
|
-
constructor(configSrv
|
|
16
|
-
this.store =
|
|
15
|
+
constructor(configSrv) {
|
|
16
|
+
this.store = inject(DA_STORE_TOKEN);
|
|
17
17
|
this.refresh$ = new Subject();
|
|
18
18
|
this.change$ = new BehaviorSubject(null);
|
|
19
19
|
this._referrer = {};
|
|
@@ -79,13 +79,10 @@ export class TokenService {
|
|
|
79
79
|
ngOnDestroy() {
|
|
80
80
|
this.cleanRefresh();
|
|
81
81
|
}
|
|
82
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
83
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0
|
|
82
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TokenService, deps: [{ token: i1.AlainConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
83
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TokenService }); }
|
|
84
84
|
}
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TokenService, decorators: [{
|
|
86
86
|
type: Injectable
|
|
87
|
-
}], ctorParameters: () => [{ type: i1.AlainConfigService }
|
|
88
|
-
|
|
89
|
-
args: [DA_STORE_TOKEN]
|
|
90
|
-
}] }] });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL3Rva2VuL3Rva2VuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFeEcsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sb0JBQW9CLENBQUM7OztBQUU1RCxNQUFNLFVBQVUsd0JBQXdCO0lBQ3RDLE9BQU8sSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFDRSxTQUE2QixFQUNHLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBUnZDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBQ3RDLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBcUIsSUFBSSxDQUFDLENBQUM7UUFFeEQsY0FBUyxHQUFpQixFQUFFLENBQUM7UUFPbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUss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QUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7OEdBekZVLFlBQVksb0RBU2IsY0FBYztrSEFUYixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVOzswQkFVTixNQUFNOzJCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGludGVydmFsLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgbWFwLCBzaGFyZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBbGFpbkF1dGhDb25maWcsIEFsYWluQ29uZmlnU2VydmljZSB9IGZyb20gJ0BkZWxvbi91dGlsL2NvbmZpZyc7XG5cbmltcG9ydCB7IEF1dGhSZWZlcnJlciwgSVRva2VuTW9kZWwsIElUb2tlblNlcnZpY2UgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBtZXJnZUNvbmZpZyB9IGZyb20gJy4uL2F1dGguY29uZmlnJztcbmltcG9ydCB7IERBX1NUT1JFX1RPS0VOLCBJU3RvcmUgfSBmcm9tICcuLi9zdG9yZS9pbnRlcmZhY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gREFfU0VSVklDRV9UT0tFTl9GQUNUT1JZKCk6IElUb2tlblNlcnZpY2Uge1xuICByZXR1cm4gbmV3IFRva2VuU2VydmljZShpbmplY3QoQWxhaW5Db25maWdTZXJ2aWNlKSwgaW5qZWN0KERBX1NUT1JFX1RPS0VOKSk7XG59XG5cbi8qKlxuICog57u05oqkVG9rZW7kv6Hmga/mnI3liqHvvIxb5Zyo57q/5paH5qGjXShodHRwczovL25nLWFsYWluLmNvbS9hdXRoKVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVG9rZW5TZXJ2aWNlIGltcGxlbWVudHMgSVRva2VuU2VydmljZSwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWZyZXNoJCA9IG5ldyBTdWJqZWN0PElUb2tlbk1vZGVsPigpO1xuICBwcml2YXRlIGNoYW5nZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElUb2tlbk1vZGVsIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgaW50ZXJ2YWwkPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9yZWZlcnJlcjogQXV0aFJlZmVycmVyID0ge307XG4gIHByaXZhdGUgX29wdGlvbnM6IEFsYWluQXV0aENvbmZpZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb25maWdTcnY6IEFsYWluQ29uZmlnU2VydmljZSxcbiAgICBASW5qZWN0KERBX1NUT1JFX1RPS0VOKSBwcml2YXRlIHN0b3JlOiBJU3RvcmVcbiAgKSB7XG4gICAgdGhpcy5fb3B0aW9ucyA9IG1lcmdlQ29uZmlnKGNvbmZpZ1Nydik7XG4gIH1cblxuICBnZXQgcmVmcmVzaCgpOiBPYnNlcnZhYmxlPElUb2tlbk1vZGVsPiB7XG4gICAgdGhpcy5idWlsZGVyUmVmcmVzaCgpO1xuICAgIHJldHVybiB0aGlzLnJlZnJlc2gkLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBnZXQgbG9naW5fdXJsKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnMubG9naW5fdXJsO1xuICB9XG5cbiAgZ2V0IHJlZmVycmVyKCk6IEF1dGhSZWZlcnJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZmVycmVyO1xuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKTogQWxhaW5BdXRoQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgfVxuXG4gIHNldChkYXRhOiBJVG9rZW5Nb2RlbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuc3RvcmUuc2V0KHRoaXMuX29wdGlvbnMuc3RvcmVfa2V5ISwgZGF0YSk7XG4gICAgdGhpcy5jaGFuZ2UkLm5leHQoZGF0YSk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGdldCh0eXBlPzogYW55KTogYW55O1xuICBnZXQ8VCBleHRlbmRzIElUb2tlbk1vZGVsPih0eXBlPzogbmV3ICgpID0+IFQpOiBUO1xuICBnZXQ8VCBleHRlbmRzIElUb2tlbk1vZGVsPih0eXBlPzogbmV3ICgpID0+IFQpOiBUIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5zdG9yZS5nZXQodGhpcy5fb3B0aW9ucy5zdG9yZV9rZXkhKTtcbiAgICByZXR1cm4gdHlwZSA/IChPYmplY3QuYXNzaWduKG5ldyB0eXBlKCksIGRhdGEpIGFzIFQpIDogKGRhdGEgYXMgVCk7XG4gIH1cblxuICBjbGVhcihvcHRpb25zOiB7IG9ubHlUb2tlbjogYm9vbGVhbiB9ID0geyBvbmx5VG9rZW46IGZhbHNlIH0pOiB2b2lkIHtcbiAgICBsZXQgZGF0YTogSVRva2VuTW9kZWwgfCBudWxsID0gbnVsbDtcbiAgICBpZiAob3B0aW9ucy5vbmx5VG9rZW4gPT09IHRydWUpIHtcbiAgICAgIGRhdGEgPSB0aGlzLmdldCgpIGFzIElUb2tlbk1vZGVsO1xuICAgICAgZGF0YS50b2tlbiA9IGBgO1xuICAgICAgdGhpcy5zZXQoZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUucmVtb3ZlKHRoaXMuX29wdGlvbnMuc3RvcmVfa2V5ISk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlJC5uZXh0KGRhdGEpO1xuICB9XG5cbiAgY2hhbmdlKCk6IE9ic2VydmFibGU8SVRva2VuTW9kZWwgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlJC5waXBlKHNoYXJlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZGVyUmVmcmVzaCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IHJlZnJlc2hUaW1lLCByZWZyZXNoT2Zmc2V0IH0gPSB0aGlzLl9vcHRpb25zO1xuICAgIHRoaXMuY2xlYW5SZWZyZXNoKCk7XG4gICAgdGhpcy5pbnRlcnZhbCQgPSBpbnRlcnZhbChyZWZyZXNoVGltZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldCgpIGFzIElUb2tlbk1vZGVsO1xuICAgICAgICAgIGNvbnN0IGV4cGlyZWQgPSBpdGVtLmV4cGlyZWQgfHwgaXRlbS5leHAgfHwgMDtcbiAgICAgICAgICBpZiAoZXhwaXJlZCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBjdXJUaW1lID0gbmV3IERhdGUoKS52YWx1ZU9mKCkgKyByZWZyZXNoT2Zmc2V0ITtcbiAgICAgICAgICByZXR1cm4gZXhwaXJlZCA8PSBjdXJUaW1lID8gaXRlbSA6IG51bGw7XG4gICAgICAgIH0pLFxuICAgICAgICBmaWx0ZXIodiA9PiB2ICE9IG51bGwpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLnJlZnJlc2gkLm5leHQocmVzISkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhblJlZnJlc2goKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwkICYmICF0aGlzLmludGVydmFsJC5jbG9zZWQpIHtcbiAgICAgIHRoaXMuaW50ZXJ2YWwkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhblJlZnJlc2goKTtcbiAgfVxufVxuIl19
|
|
87
|
+
}], ctorParameters: () => [{ type: i1.AlainConfigService }] });
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL3Rva2VuL3Rva2VuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQWMsT0FBTyxFQUFnQixNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4RyxPQUFPLEVBQW1CLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRXBELE1BQU0sVUFBVSx3QkFBd0I7SUFDdEMsT0FBTyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRDs7R0FFRztBQUVILE1BQU0sT0FBTyxZQUFZO0lBUXZCLFlBQVksU0FBNkI7UUFQeEIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQWUsQ0FBQztRQUN0QyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQXFCLElBQUksQ0FBQyxDQUFDO1FBRXhELGNBQVMsR0FBaUIsRUFBRSxDQUFDO1FBSW5DLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFF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SUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs4R0F2RlUsWUFBWTtrSEFBWixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaW50ZXJ2YWwsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZmlsdGVyLCBtYXAsIHNoYXJlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFsYWluQXV0aENvbmZpZywgQWxhaW5Db25maWdTZXJ2aWNlIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcblxuaW1wb3J0IHsgQXV0aFJlZmVycmVyLCBJVG9rZW5Nb2RlbCwgSVRva2VuU2VydmljZSB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IG1lcmdlQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgREFfU1RPUkVfVE9LRU4gfSBmcm9tICcuLi9zdG9yZS9pbnRlcmZhY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gREFfU0VSVklDRV9UT0tFTl9GQUNUT1JZKCk6IElUb2tlblNlcnZpY2Uge1xuICByZXR1cm4gbmV3IFRva2VuU2VydmljZShpbmplY3QoQWxhaW5Db25maWdTZXJ2aWNlKSk7XG59XG5cbi8qKlxuICog57u05oqkVG9rZW7kv6Hmga/mnI3liqHvvIxb5Zyo57q/5paH5qGjXShodHRwczovL25nLWFsYWluLmNvbS9hdXRoKVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVG9rZW5TZXJ2aWNlIGltcGxlbWVudHMgSVRva2VuU2VydmljZSwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IGluamVjdChEQV9TVE9SRV9UT0tFTik7XG4gIHByaXZhdGUgcmVmcmVzaCQgPSBuZXcgU3ViamVjdDxJVG9rZW5Nb2RlbD4oKTtcbiAgcHJpdmF0ZSBjaGFuZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJVG9rZW5Nb2RlbCB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIGludGVydmFsJD86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfcmVmZXJyZXI6IEF1dGhSZWZlcnJlciA9IHt9O1xuICBwcml2YXRlIF9vcHRpb25zOiBBbGFpbkF1dGhDb25maWc7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnU3J2OiBBbGFpbkNvbmZpZ1NlcnZpY2UpIHtcbiAgICB0aGlzLl9vcHRpb25zID0gbWVyZ2VDb25maWcoY29uZmlnU3J2KTtcbiAgfVxuXG4gIGdldCByZWZyZXNoKCk6IE9ic2VydmFibGU8SVRva2VuTW9kZWw+IHtcbiAgICB0aGlzLmJ1aWxkZXJSZWZyZXNoKCk7XG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaCQucGlwZShzaGFyZSgpKTtcbiAgfVxuXG4gIGdldCBsb2dpbl91cmwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5sb2dpbl91cmw7XG4gIH1cblxuICBnZXQgcmVmZXJyZXIoKTogQXV0aFJlZmVycmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcmVmZXJyZXI7XG4gIH1cblxuICBnZXQgb3B0aW9ucygpOiBBbGFpbkF1dGhDb25maWcge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgc2V0KGRhdGE6IElUb2tlbk1vZGVsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5zdG9yZS5zZXQodGhpcy5fb3B0aW9ucy5zdG9yZV9rZXkhLCBkYXRhKTtcbiAgICB0aGlzLmNoYW5nZSQubmV4dChkYXRhKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgZ2V0KHR5cGU/OiBhbnkpOiBhbnk7XG4gIGdldDxUIGV4dGVuZHMgSVRva2VuTW9kZWw+KHR5cGU/OiBuZXcgKCkgPT4gVCk6IFQ7XG4gIGdldDxUIGV4dGVuZHMgSVRva2VuTW9kZWw+KHR5cGU/OiBuZXcgKCkgPT4gVCk6IFQge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnN0b3JlLmdldCh0aGlzLl9vcHRpb25zLnN0b3JlX2tleSEpO1xuICAgIHJldHVybiB0eXBlID8gKE9iamVjdC5hc3NpZ24obmV3IHR5cGUoKSwgZGF0YSkgYXMgVCkgOiAoZGF0YSBhcyBUKTtcbiAgfVxuXG4gIGNsZWFyKG9wdGlvbnM6IHsgb25seVRva2VuOiBib29sZWFuIH0gPSB7IG9ubHlUb2tlbjogZmFsc2UgfSk6IHZvaWQge1xuICAgIGxldCBkYXRhOiBJVG9rZW5Nb2RlbCB8IG51bGwgPSBudWxsO1xuICAgIGlmIChvcHRpb25zLm9ubHlUb2tlbiA9PT0gdHJ1ZSkge1xuICAgICAgZGF0YSA9IHRoaXMuZ2V0KCkgYXMgSVRva2VuTW9kZWw7XG4gICAgICBkYXRhLnRva2VuID0gYGA7XG4gICAgICB0aGlzLnNldChkYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yZS5yZW1vdmUodGhpcy5fb3B0aW9ucy5zdG9yZV9rZXkhKTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2UkLm5leHQoZGF0YSk7XG4gIH1cblxuICBjaGFuZ2UoKTogT2JzZXJ2YWJsZTxJVG9rZW5Nb2RlbCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2UkLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkZXJSZWZyZXNoKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgcmVmcmVzaFRpbWUsIHJlZnJlc2hPZmZzZXQgfSA9IHRoaXMuX29wdGlvbnM7XG4gICAgdGhpcy5jbGVhblJlZnJlc2goKTtcbiAgICB0aGlzLmludGVydmFsJCA9IGludGVydmFsKHJlZnJlc2hUaW1lKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0KCkgYXMgSVRva2VuTW9kZWw7XG4gICAgICAgICAgY29uc3QgZXhwaXJlZCA9IGl0ZW0uZXhwaXJlZCB8fCBpdGVtLmV4cCB8fCAwO1xuICAgICAgICAgIGlmIChleHBpcmVkIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGN1clRpbWUgPSBuZXcgRGF0ZSgpLnZhbHVlT2YoKSArIHJlZnJlc2hPZmZzZXQhO1xuICAgICAgICAgIHJldHVybiBleHBpcmVkIDw9IGN1clRpbWUgPyBpdGVtIDogbnVsbDtcbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcih2ID0+IHYgIT0gbnVsbClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHRoaXMucmVmcmVzaCQubmV4dChyZXMhKSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFuUmVmcmVzaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnRlcnZhbCQgJiYgIXRoaXMuaW50ZXJ2YWwkLmNsb3NlZCkge1xuICAgICAgdGhpcy5pbnRlcnZhbCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFuUmVmcmVzaCgpO1xuICB9XG59XG4iXX0=
|
package/fesm2022/auth.mjs
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, inject, Injectable,
|
|
3
|
+
import { InjectionToken, inject, Injectable, makeEnvironmentProviders } from '@angular/core';
|
|
4
|
+
import { Router } from '@angular/router';
|
|
4
5
|
import { Subject, BehaviorSubject, share, map, filter, interval, Observable } from 'rxjs';
|
|
5
6
|
import * as i1 from '@delon/util/config';
|
|
6
7
|
import { AlainConfigService } from '@delon/util/config';
|
|
7
|
-
import * as i1$1 from '@angular/router';
|
|
8
|
-
import { Router } from '@angular/router';
|
|
9
|
-
import { HttpContextToken, HttpErrorResponse } from '@angular/common/http';
|
|
10
8
|
import { CookieService } from '@delon/util/browser';
|
|
9
|
+
import { HttpContextToken, HttpErrorResponse } from '@angular/common/http';
|
|
11
10
|
|
|
12
11
|
const AUTH_DEFAULT_CONFIG = {
|
|
13
12
|
store_key: `_token`,
|
|
@@ -17,7 +16,6 @@ const AUTH_DEFAULT_CONFIG = {
|
|
|
17
16
|
token_send_template: '${token}',
|
|
18
17
|
token_send_place: 'header',
|
|
19
18
|
login_url: '/login',
|
|
20
|
-
ignores: [/\/login/, /assets\//, /passport\//],
|
|
21
19
|
refreshTime: 3000,
|
|
22
20
|
refreshOffset: 6000
|
|
23
21
|
};
|
|
@@ -54,14 +52,14 @@ const DA_STORE_TOKEN = new InjectionToken('AUTH_STORE_TOKEN', {
|
|
|
54
52
|
});
|
|
55
53
|
|
|
56
54
|
function DA_SERVICE_TOKEN_FACTORY() {
|
|
57
|
-
return new TokenService(inject(AlainConfigService)
|
|
55
|
+
return new TokenService(inject(AlainConfigService));
|
|
58
56
|
}
|
|
59
57
|
/**
|
|
60
58
|
* 维护Token信息服务,[在线文档](https://ng-alain.com/auth)
|
|
61
59
|
*/
|
|
62
60
|
class TokenService {
|
|
63
|
-
constructor(configSrv
|
|
64
|
-
this.store =
|
|
61
|
+
constructor(configSrv) {
|
|
62
|
+
this.store = inject(DA_STORE_TOKEN);
|
|
65
63
|
this.refresh$ = new Subject();
|
|
66
64
|
this.change$ = new BehaviorSubject(null);
|
|
67
65
|
this._referrer = {};
|
|
@@ -127,15 +125,12 @@ class TokenService {
|
|
|
127
125
|
ngOnDestroy() {
|
|
128
126
|
this.cleanRefresh();
|
|
129
127
|
}
|
|
130
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
131
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0
|
|
128
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TokenService, deps: [{ token: i1.AlainConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
129
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TokenService }); }
|
|
132
130
|
}
|
|
133
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TokenService, decorators: [{
|
|
134
132
|
type: Injectable
|
|
135
|
-
}], ctorParameters: () => [{ type: i1.AlainConfigService }
|
|
136
|
-
type: Inject,
|
|
137
|
-
args: [DA_STORE_TOKEN]
|
|
138
|
-
}] }] });
|
|
133
|
+
}], ctorParameters: () => [{ type: i1.AlainConfigService }] });
|
|
139
134
|
|
|
140
135
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
141
136
|
const DA_SERVICE_TOKEN = new InjectionToken('DA_SERVICE_TOKEN', {
|
|
@@ -147,10 +142,10 @@ const DA_SERVICE_TOKEN = new InjectionToken('DA_SERVICE_TOKEN', {
|
|
|
147
142
|
const OPENTYPE = '_delonAuthSocialType';
|
|
148
143
|
const HREFCALLBACK = '_delonAuthSocialCallbackByHref';
|
|
149
144
|
class SocialService {
|
|
150
|
-
constructor(
|
|
151
|
-
this.tokenService =
|
|
152
|
-
this.doc =
|
|
153
|
-
this.router =
|
|
145
|
+
constructor() {
|
|
146
|
+
this.tokenService = inject(DA_SERVICE_TOKEN);
|
|
147
|
+
this.doc = inject(DOCUMENT);
|
|
148
|
+
this.router = inject(Router);
|
|
154
149
|
this._win = null;
|
|
155
150
|
}
|
|
156
151
|
/**
|
|
@@ -230,18 +225,12 @@ class SocialService {
|
|
|
230
225
|
clearInterval(this._winTime);
|
|
231
226
|
this._winTime = null;
|
|
232
227
|
}
|
|
233
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
234
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0
|
|
228
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SocialService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
229
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SocialService }); }
|
|
235
230
|
}
|
|
236
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
231
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SocialService, decorators: [{
|
|
237
232
|
type: Injectable
|
|
238
|
-
}]
|
|
239
|
-
type: Inject,
|
|
240
|
-
args: [DA_SERVICE_TOKEN]
|
|
241
|
-
}] }, { type: undefined, decorators: [{
|
|
242
|
-
type: Inject,
|
|
243
|
-
args: [DOCUMENT]
|
|
244
|
-
}] }, { type: i1$1.Router }] });
|
|
233
|
+
}] });
|
|
245
234
|
|
|
246
235
|
/**
|
|
247
236
|
* 内存存储,关掉浏览器标签后**丢失**。
|
|
@@ -290,8 +279,8 @@ class SessionStorageStore {
|
|
|
290
279
|
* ```
|
|
291
280
|
*/
|
|
292
281
|
class CookieStorageStore {
|
|
293
|
-
constructor(
|
|
294
|
-
this.srv =
|
|
282
|
+
constructor() {
|
|
283
|
+
this.srv = inject(CookieService);
|
|
295
284
|
}
|
|
296
285
|
get(key) {
|
|
297
286
|
try {
|
|
@@ -434,8 +423,8 @@ function ToLogin(options, url) {
|
|
|
434
423
|
}
|
|
435
424
|
|
|
436
425
|
class AuthJWTGuardService {
|
|
437
|
-
constructor(
|
|
438
|
-
this.srv =
|
|
426
|
+
constructor() {
|
|
427
|
+
this.srv = inject(DA_SERVICE_TOKEN);
|
|
439
428
|
}
|
|
440
429
|
process(url) {
|
|
441
430
|
const cog = this.srv.options;
|
|
@@ -445,16 +434,13 @@ class AuthJWTGuardService {
|
|
|
445
434
|
}
|
|
446
435
|
return res;
|
|
447
436
|
}
|
|
448
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
449
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0
|
|
437
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AuthJWTGuardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
438
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AuthJWTGuardService, providedIn: 'root' }); }
|
|
450
439
|
}
|
|
451
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
440
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AuthJWTGuardService, decorators: [{
|
|
452
441
|
type: Injectable,
|
|
453
442
|
args: [{ providedIn: 'root' }]
|
|
454
|
-
}]
|
|
455
|
-
type: Inject,
|
|
456
|
-
args: [DA_SERVICE_TOKEN]
|
|
457
|
-
}] }] });
|
|
443
|
+
}] });
|
|
458
444
|
/**
|
|
459
445
|
* JWT 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).
|
|
460
446
|
*
|
|
@@ -554,8 +540,8 @@ const authJWTInterceptor = (req, next) => {
|
|
|
554
540
|
};
|
|
555
541
|
|
|
556
542
|
class AuthSimpleGuardService {
|
|
557
|
-
constructor(
|
|
558
|
-
this.srv =
|
|
543
|
+
constructor() {
|
|
544
|
+
this.srv = inject(DA_SERVICE_TOKEN);
|
|
559
545
|
}
|
|
560
546
|
process(url) {
|
|
561
547
|
const res = CheckSimple(this.srv.get());
|
|
@@ -564,16 +550,13 @@ class AuthSimpleGuardService {
|
|
|
564
550
|
}
|
|
565
551
|
return res;
|
|
566
552
|
}
|
|
567
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
568
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0
|
|
553
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AuthSimpleGuardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
554
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AuthSimpleGuardService, providedIn: 'root' }); }
|
|
569
555
|
}
|
|
570
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
556
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AuthSimpleGuardService, decorators: [{
|
|
571
557
|
type: Injectable,
|
|
572
558
|
args: [{ providedIn: 'root' }]
|
|
573
|
-
}]
|
|
574
|
-
type: Inject,
|
|
575
|
-
args: [DA_SERVICE_TOKEN]
|
|
576
|
-
}] }] });
|
|
559
|
+
}] });
|
|
577
560
|
/**
|
|
578
561
|
* Simple 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).
|
|
579
562
|
*
|
package/fesm2022/auth.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.mjs","sources":["../../../../packages/auth/src/auth.config.ts","../../../../packages/auth/src/store/local-storage.service.ts","../../../../packages/auth/src/store/interface.ts","../../../../packages/auth/src/token/token.service.ts","../../../../packages/auth/src/token/interface.ts","../../../../packages/auth/src/social/social.service.ts","../../../../packages/auth/src/store/memory.service.ts","../../../../packages/auth/src/store/session-storage.service.ts","../../../../packages/auth/src/store/cookie-storage.service.ts","../../../../packages/auth/src/token/jwt/jwt.helper.ts","../../../../packages/auth/src/token/jwt/jwt.model.ts","../../../../packages/auth/src/token/helper.ts","../../../../packages/auth/src/token/jwt/jwt.guard.ts","../../../../packages/auth/src/token.ts","../../../../packages/auth/src/token/base.interceptor.ts","../../../../packages/auth/src/token/jwt/jwt.interceptor.ts","../../../../packages/auth/src/token/simple/simple.guard.ts","../../../../packages/auth/src/token/simple/simple.interceptor.ts","../../../../packages/auth/src/token/simple/simple.model.ts","../../../../packages/auth/src/provide.ts","../../../../packages/auth/auth.ts"],"sourcesContent":["import type { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\n\nexport const AUTH_DEFAULT_CONFIG: AlainAuthConfig = {\n store_key: `_token`,\n token_invalid_redirect: true,\n token_exp_offset: 10,\n token_send_key: `token`,\n token_send_template: '${token}',\n token_send_place: 'header',\n login_url: '/login',\n ignores: [/\\/login/, /assets\\//, /passport\\//],\n refreshTime: 3000,\n refreshOffset: 6000\n};\n\nexport function mergeConfig(srv: AlainConfigService): AlainAuthConfig {\n return srv.merge('auth', AUTH_DEFAULT_CONFIG)!;\n}\n","import { IStore } from './interface';\nimport { ITokenModel } from '../token/interface';\n\nexport function DA_STORE_TOKEN_LOCAL_FACTORY(): IStore {\n return new LocalStorageStore();\n}\n\n/**\n * `localStorage` storage, **not lost after closing the browser**.\n *\n * ```ts\n * provideAuth(withJWT(), withLocalStorage())\n * ```\n */\nexport class LocalStorageStore implements IStore {\n get(key: string): ITokenModel {\n return JSON.parse(localStorage.getItem(key) || '{}') || {};\n }\n\n set(key: string, value: ITokenModel | null): boolean {\n localStorage.setItem(key, JSON.stringify(value));\n return true;\n }\n\n remove(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { DA_STORE_TOKEN_LOCAL_FACTORY } from './local-storage.service';\nimport { ITokenModel } from '../token/interface';\n\nexport const DA_STORE_TOKEN = new InjectionToken<IStore>('AUTH_STORE_TOKEN', {\n providedIn: 'root',\n factory: DA_STORE_TOKEN_LOCAL_FACTORY\n});\n\nexport interface IStore {\n get(key: string): ITokenModel;\n\n set(key: string, value: ITokenModel): boolean;\n\n remove(key: string): void;\n}\n","import { inject, Inject, Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, interval, Observable, Subject, Subscription, filter, map, share } from 'rxjs';\n\nimport { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\n\nimport { AuthReferrer, ITokenModel, ITokenService } from './interface';\nimport { mergeConfig } from '../auth.config';\nimport { DA_STORE_TOKEN, IStore } from '../store/interface';\n\nexport function DA_SERVICE_TOKEN_FACTORY(): ITokenService {\n return new TokenService(inject(AlainConfigService), inject(DA_STORE_TOKEN));\n}\n\n/**\n * 维护Token信息服务,[在线文档](https://ng-alain.com/auth)\n */\n@Injectable()\nexport class TokenService implements ITokenService, OnDestroy {\n private refresh$ = new Subject<ITokenModel>();\n private change$ = new BehaviorSubject<ITokenModel | null>(null);\n private interval$?: Subscription;\n private _referrer: AuthReferrer = {};\n private _options: AlainAuthConfig;\n\n constructor(\n configSrv: AlainConfigService,\n @Inject(DA_STORE_TOKEN) private store: IStore\n ) {\n this._options = mergeConfig(configSrv);\n }\n\n get refresh(): Observable<ITokenModel> {\n this.builderRefresh();\n return this.refresh$.pipe(share());\n }\n\n get login_url(): string | undefined {\n return this._options.login_url;\n }\n\n get referrer(): AuthReferrer {\n return this._referrer;\n }\n\n get options(): AlainAuthConfig {\n return this._options;\n }\n\n set(data: ITokenModel): boolean {\n const res = this.store.set(this._options.store_key!, data);\n this.change$.next(data);\n return res;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(type?: any): any;\n get<T extends ITokenModel>(type?: new () => T): T;\n get<T extends ITokenModel>(type?: new () => T): T {\n const data = this.store.get(this._options.store_key!);\n return type ? (Object.assign(new type(), data) as T) : (data as T);\n }\n\n clear(options: { onlyToken: boolean } = { onlyToken: false }): void {\n let data: ITokenModel | null = null;\n if (options.onlyToken === true) {\n data = this.get() as ITokenModel;\n data.token = ``;\n this.set(data);\n } else {\n this.store.remove(this._options.store_key!);\n }\n this.change$.next(data);\n }\n\n change(): Observable<ITokenModel | null> {\n return this.change$.pipe(share());\n }\n\n private builderRefresh(): void {\n const { refreshTime, refreshOffset } = this._options;\n this.cleanRefresh();\n this.interval$ = interval(refreshTime)\n .pipe(\n map(() => {\n const item = this.get() as ITokenModel;\n const expired = item.expired || item.exp || 0;\n if (expired <= 0) {\n return null;\n }\n\n const curTime = new Date().valueOf() + refreshOffset!;\n return expired <= curTime ? item : null;\n }),\n filter(v => v != null)\n )\n .subscribe(res => this.refresh$.next(res!));\n }\n\n private cleanRefresh(): void {\n if (this.interval$ && !this.interval$.closed) {\n this.interval$.unsubscribe();\n }\n }\n\n ngOnDestroy(): void {\n this.cleanRefresh();\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { DA_SERVICE_TOKEN_FACTORY } from './token.service';\n\nexport const DA_SERVICE_TOKEN = new InjectionToken<ITokenService>('DA_SERVICE_TOKEN', {\n providedIn: 'root',\n factory: DA_SERVICE_TOKEN_FACTORY\n});\n\nexport interface ITokenModel {\n [key: string]: any;\n\n token: string | null | undefined;\n\n /**\n * 过期时间,单位:ms\n * - 不管Simple、JWT模式都必须指定\n */\n expired?: number;\n}\n\nexport interface AuthReferrer {\n url?: string | null | undefined;\n}\n\nexport interface ITokenService {\n /**\n * 授权失败后跳转路由路径(支持外部链接地址),通过设置[全局配置](https://ng-alain.com/docs/global-config)来改变\n */\n readonly login_url: string | undefined;\n\n /**\n * 当前请求页面的来源页面的地址\n */\n readonly referrer?: AuthReferrer;\n\n readonly options: AlainAuthConfig;\n\n /**\n * 订阅刷新,订阅时会自动产生一个定时器,每隔一段时间进行一些校验\n * - **注意** 会多次触发,请务必做好业务判断\n */\n readonly refresh: Observable<ITokenModel>;\n\n /**\n * 设置 Token 信息,当用户 Token 发生变动时都需要调用此方法重新刷新\n * - 如果需要监听过期,需要传递 `expired` 值\n */\n set(data: ITokenModel | null): boolean;\n\n /**\n * 获取Token,形式包括:\n * - `get()` 获取 Simple Token\n * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token\n */\n get(type?: any): ITokenModel | null;\n\n /**\n * 获取Token,形式包括:\n * - `get()` 获取 Simple Token\n * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token\n */\n get<T extends ITokenModel>(type?: any): T;\n\n /**\n * 清除 Token 信息,当用户退出登录时调用。\n * ```\n * // 清除所有 Token 信息\n * tokenService.clear();\n * // 只清除 token 字段\n * tokenService.clear({ onlyToken: true });\n * ```\n */\n clear(options?: { onlyToken: boolean }): void;\n\n /**\n * 订阅 Token 对象变更通知\n */\n change(): Observable<ITokenModel | null>;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable, Observer } from 'rxjs';\n\nimport { DA_SERVICE_TOKEN, ITokenModel, ITokenService } from '../token/interface';\n\nconst OPENTYPE = '_delonAuthSocialType';\nconst HREFCALLBACK = '_delonAuthSocialCallbackByHref';\n\nexport type SocialOpenType = 'href' | 'window';\n\n@Injectable()\nexport class SocialService implements OnDestroy {\n private _win: Window | null = null;\n private _winTime: any;\n private observer!: Observer<ITokenModel | null>;\n\n constructor(\n @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService,\n @Inject(DOCUMENT) private doc: any,\n private router: Router\n ) {}\n\n /**\n * 使用窗体打开授权页,返回值是 `Observable<ITokenModel>` 用于订阅授权后返回的结果\n *\n * @param url 获取授权地址\n * @param callback 回调路由地址\n * @param options.windowFeatures 等同 `window.open` 的 `features` 参数值\n */\n login(\n url: string,\n callback?: string,\n options?: {\n type?: 'window';\n windowFeatures?: string;\n }\n ): Observable<ITokenModel>;\n\n /**\n * 跳转至授权页\n *\n * @param url 获取授权地址\n * @param callback 回调路由地址\n */\n login(\n url: string,\n callback?: string,\n options?: {\n type?: 'href';\n }\n ): void;\n\n /**\n * 跳转至登录页,若为 `type=window` 时,返回值是 `Observable<ITokenModel>`\n *\n * @param url 获取授权地址\n * @param callback 当 `type=href` 成功时的回调路由地址\n * @param options.type 打开方式,默认 `window`\n * @param options.windowFeatures 等同 `window.open` 的 `features` 参数值\n */\n login(\n url: string,\n callback: string = '/',\n options: {\n type?: SocialOpenType;\n windowFeatures?: string;\n } = {}\n ): Observable<ITokenModel | null> | void {\n options = {\n type: 'window',\n windowFeatures: 'location=yes,height=570,width=520,scrollbars=yes,status=yes',\n ...options\n };\n localStorage.setItem(OPENTYPE, options.type!);\n localStorage.setItem(HREFCALLBACK, callback);\n if (options.type === 'href') {\n this.doc.location.href = url;\n return;\n }\n\n this._win = window.open(url, '_blank', options.windowFeatures);\n this._winTime = setInterval(() => {\n if (this._win && this._win.closed) {\n this.ngOnDestroy();\n\n let model = this.tokenService.get();\n if (model && !model.token) model = null;\n\n // 触发变更通知\n if (model) {\n this.tokenService.set(model);\n }\n\n this.observer.next(model);\n this.observer.complete();\n }\n }, 100);\n return new Observable((observer: Observer<ITokenModel | null>) => {\n this.observer = observer;\n });\n }\n\n /**\n * 授权成功后的回调处理\n *\n * @param rawData 指定回调认证信息,为空时从根据当前URL解析\n */\n callback(rawData?: ITokenModel | string | null): ITokenModel {\n // from uri\n if (!rawData && this.router.url.indexOf('?') === -1) {\n throw new Error(`url muse contain a ?`);\n }\n // parse\n let data: ITokenModel = { token: `` };\n if (typeof rawData === 'string') {\n const rightUrl = rawData.split('?')[1].split('#')[0];\n data = this.router.parseUrl(`./?${rightUrl}`).queryParams as ITokenModel;\n } else {\n data = rawData as ITokenModel;\n }\n\n if (!data || !data.token) throw new Error(`invalide token data`);\n this.tokenService.set(data);\n\n const url = localStorage.getItem(HREFCALLBACK) || '/';\n localStorage.removeItem(HREFCALLBACK);\n const type = localStorage.getItem(OPENTYPE);\n localStorage.removeItem(OPENTYPE);\n if (type === 'window') {\n window.close();\n } else {\n this.router.navigateByUrl(url);\n }\n\n return data;\n }\n\n ngOnDestroy(): void {\n clearInterval(this._winTime);\n this._winTime = null;\n }\n}\n","import { IStore } from './interface';\nimport { ITokenModel } from '../token/interface';\n\n/**\n * 内存存储,关掉浏览器标签后**丢失**。\n */\nexport class MemoryStore implements IStore {\n private cache: { [key: string]: ITokenModel | null } = {};\n\n get(key: string): ITokenModel {\n return this.cache[key] || ({} as ITokenModel);\n }\n\n set(key: string, value: ITokenModel): boolean {\n this.cache[key] = value;\n return true;\n }\n\n remove(key: string): void {\n this.cache[key] = null;\n }\n}\n","import { IStore } from './interface';\nimport { ITokenModel } from '../token/interface';\n\n/**\n * `sessionStorage` storage, **lost after closing the browser**.\n *\n * ```ts\n * provideAuth(withJWT(), withSessionStorage())\n * ```\n */\nexport class SessionStorageStore implements IStore {\n get(key: string): ITokenModel {\n return JSON.parse(sessionStorage.getItem(key) || '{}') || {};\n }\n\n set(key: string, value: ITokenModel | null): boolean {\n sessionStorage.setItem(key, JSON.stringify(value));\n return true;\n }\n\n remove(key: string): void {\n sessionStorage.removeItem(key);\n }\n}\n","import { CookieService } from '@delon/util/browser';\n\nimport { IStore } from './interface';\nimport { ITokenModel } from '../token/interface';\n\n/**\n * `cookie` storage\n *\n * ```ts\n * provideAuth(withJWT(), withCookie())\n * ```\n */\nexport class CookieStorageStore implements IStore {\n constructor(private srv: CookieService) {}\n\n get(key: string): ITokenModel {\n try {\n return JSON.parse(this.srv.get(key) || '{}');\n } catch (ex) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.error(`CookieStorageStore: Invalid key-value format ${key}`, ex);\n }\n return {} as ITokenModel;\n }\n }\n\n set(key: string, value: ITokenModel | null | undefined): boolean {\n const expires = (value?.expired ?? 0) / 1e3;\n this.srv.put(key, JSON.stringify(value ?? {}), { expires });\n return true;\n }\n\n remove(key: string): void {\n this.srv.remove(key);\n }\n}\n","export function urlBase64Decode(str: string): string {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw new Error(`'atob' failed: The string to be decoded is not correctly encoded.`);\n }\n }\n return b64DecodeUnicode(output);\n}\n\nfunction b64decode(str: string): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n\n str = String(str).replace(/=+$/, '');\n\n for (\n // initialize result and counters\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let bc = 0, bs: any, buffer: any, idx = 0;\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4)\n ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\n : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\n// https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\nfunction b64DecodeUnicode(str: string): string {\n return decodeURIComponent(\n Array.prototype.map\n .call(b64decode(str), (c: string) => {\n return `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`;\n })\n .join('')\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { urlBase64Decode } from './jwt.helper';\nimport { ITokenModel } from '../interface';\n\nexport interface JWT {\n /**\n * Issuerd\n */\n iss: string;\n /**\n * Issued At\n */\n iat: string;\n /**\n * Subject\n */\n sub: string;\n /**\n * Expiration Time\n */\n exp: number;\n /**\n * Audience\n */\n aud: string;\n /**\n * Not Before\n */\n nbf: string;\n /**\n * JWT ID\n */\n jti: string;\n\n [key: string]: any;\n [key: number]: any;\n}\n\nexport class JWTTokenModel implements ITokenModel {\n [key: string]: any;\n\n token: string | null | undefined;\n\n expired?: number;\n\n /**\n * 获取载荷信息\n */\n get payload(): JWT {\n const parts = (this.token || '').split('.');\n if (parts.length !== 3) throw new Error('JWT must have 3 parts');\n\n const decoded = urlBase64Decode(parts[1]);\n return JSON.parse(decoded);\n }\n\n /**\n * 获取过期时间戳(单位:ms)\n */\n get exp(): number | null {\n const decoded = this.payload;\n if (!decoded.hasOwnProperty('exp')) return null;\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n return date.valueOf();\n }\n\n /**\n * 检查Token是否过期,当`payload` 包含 `exp` 字段时有效,若无 `exp` 字段直接返回 `null`\n *\n * @param offsetSeconds 偏移量\n */\n isExpired(offsetSeconds: number = 0): boolean | null {\n const exp = this.exp;\n if (exp == null) return null;\n\n return !(exp > new Date().valueOf() + offsetSeconds * 1000);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { DA_SERVICE_TOKEN, ITokenService } from './interface';\nimport { JWTTokenModel } from './jwt/jwt.model';\nimport { SimpleTokenModel } from './simple/simple.model';\n\nexport function CheckSimple(model: SimpleTokenModel | null): boolean {\n return model != null && typeof model.token === 'string' && model.token.length > 0;\n}\n\nexport function CheckJwt(model: JWTTokenModel, offset: number): boolean {\n try {\n return model != null && !!model.token && !model.isExpired(offset);\n } catch (err: unknown) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`${(err as { message: string }).message}, jump to login_url`);\n }\n return false;\n }\n}\n\nexport function ToLogin(options: AlainAuthConfig, url?: string): void {\n const router = inject(Router);\n const token = inject(DA_SERVICE_TOKEN) as ITokenService;\n const doc = inject(DOCUMENT);\n token.referrer!.url = url || router.url;\n if (options.token_invalid_redirect === true) {\n setTimeout(() => {\n if (/^https?:\\/\\//g.test(options.login_url!)) {\n doc.location.href = options.login_url as string;\n } else {\n router.navigate([options.login_url]);\n }\n });\n }\n}\n","import { Inject, Injectable, inject } from '@angular/core';\nimport { CanActivateChildFn, CanActivateFn, CanMatchFn } from '@angular/router';\n\nimport { JWTTokenModel } from './jwt.model';\nimport { CheckJwt, ToLogin } from '../helper';\nimport { DA_SERVICE_TOKEN, ITokenService } from '../interface';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthJWTGuardService {\n constructor(@Inject(DA_SERVICE_TOKEN) private srv: ITokenService) {}\n\n process(url?: string): boolean {\n const cog = this.srv.options;\n const res = CheckJwt(this.srv.get<JWTTokenModel>(JWTTokenModel), cog.token_exp_offset!);\n if (!res) {\n ToLogin(cog, url);\n }\n return res;\n }\n}\n\n/**\n * JWT 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivate: [ authJWTCanActivate ],\n * data: { guard: 'user1' }\n * }\n * ```\n */\nexport const authJWTCanActivate: CanActivateFn = (_, state) => inject(AuthJWTGuardService).process(state.url);\n\n/**\n * JWT 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivateChild: [ authJWTCanActivateChild ],\n * data: { guard: 'user1' }\n * }\n * ```\n */\nexport const authJWTCanActivateChild: CanActivateChildFn = (_, state) => inject(AuthJWTGuardService).process(state.url);\n\n/**\n * JWT 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canMatch: [ authJWTCanMatch ],\n * data: { guard: 'user1' }\n * }\n * ```\n */\nexport const authJWTCanMatch: CanMatchFn = route => inject(AuthJWTGuardService).process(route.path);\n","import { HttpContextToken } from '@angular/common/http';\n\n/**\n * Whether to allow anonymous login\n *\n * 是否允许匿名登录\n *\n * @example\n * this.http.post(`login`, {\n * name: 'cipchk', pwd: '123456'\n * }, {\n * context: new HttpContext().set(ALLOW_ANONYMOUS, true)\n * })\n */\nexport const ALLOW_ANONYMOUS = new HttpContextToken(() => false);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpErrorResponse, HttpEvent, HttpRequest } from '@angular/common/http';\nimport { Observable, Observer } from 'rxjs';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { ToLogin } from './helper';\nimport { ALLOW_ANONYMOUS } from '../token';\n\nexport function isAnonymous(req: HttpRequest<unknown>, options: AlainAuthConfig): boolean {\n if (req.context.get(ALLOW_ANONYMOUS)) return true;\n if (Array.isArray(options.ignores)) {\n for (const item of options.ignores) {\n if (item.test(req.url)) return true;\n }\n }\n return false;\n}\n\nexport function throwErr(req: HttpRequest<unknown>, options: AlainAuthConfig): Observable<HttpEvent<unknown>> {\n ToLogin(options);\n\n // Interrupt Http request, so need to generate a new Observable\n return new Observable((observer: Observer<HttpEvent<any>>) => {\n let statusText = '';\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n statusText = `来自 @delon/auth 的拦截,所请求URL未授权,若是登录API可加入 new HttpContext().set(ALLOW_ANONYMOUS, true) 来表示忽略校验,更多方法请参考: https://ng-alain.com/auth/getting-started#AlainAuthConfig\\nThe interception from @delon/auth, the requested URL is not authorized. If the login API can add new HttpContext().set(ALLOW_ANONYMOUS, true) to ignore the check, please refer to: https://ng-alain.com/auth/getting-started#AlainAuthConfig`;\n }\n const res = new HttpErrorResponse({\n url: req.url,\n headers: req.headers,\n status: 401,\n statusText\n });\n observer.error(res);\n });\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpInterceptorFn, HttpRequest } from '@angular/common/http';\nimport { inject } from '@angular/core';\n\nimport { AlainConfigService } from '@delon/util/config';\n\nimport { JWTTokenModel } from './jwt.model';\nimport { mergeConfig } from '../../auth.config';\nimport { isAnonymous, throwErr } from '../base.interceptor';\nimport { CheckJwt } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\n\nfunction newReq(req: HttpRequest<unknown>, model: JWTTokenModel): HttpRequest<unknown> {\n return req.clone({\n setHeaders: {\n Authorization: `Bearer ${model.token}`\n }\n });\n}\n\nexport const authJWTInterceptor: HttpInterceptorFn = (req, next) => {\n const options = mergeConfig(inject(AlainConfigService));\n\n if (isAnonymous(req, options)) return next(req);\n\n const model = inject(DA_SERVICE_TOKEN).get<JWTTokenModel>(JWTTokenModel);\n if (CheckJwt(model, options.token_exp_offset!)) return next(newReq(req, model));\n\n return throwErr(req, options);\n};\n","import { Inject, Injectable, inject } from '@angular/core';\nimport { CanActivateChildFn, CanActivateFn, CanMatchFn } from '@angular/router';\n\nimport { SimpleTokenModel } from './simple.model';\nimport { CheckSimple, ToLogin } from '../helper';\nimport { DA_SERVICE_TOKEN, ITokenService } from '../interface';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthSimpleGuardService {\n constructor(@Inject(DA_SERVICE_TOKEN) private srv: ITokenService) {}\n\n process(url?: string): boolean {\n const res = CheckSimple(this.srv.get() as SimpleTokenModel);\n if (!res) {\n ToLogin(this.srv.options, url);\n }\n return res;\n }\n}\n\n/**\n * Simple 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivate: [ authSimpleCanActivate ],\n * data: { guard: 'user1' }\n * }\n * ```\n */\nexport const authSimpleCanActivate: CanActivateFn = (_, state) => inject(AuthSimpleGuardService).process(state.url);\n\n/**\n * Simple 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivateChild: [ authSimpleCanActivateChild ],\n * data: { guard: 'user1' }\n * }\n * ```\n */\nexport const authSimpleCanActivateChild: CanActivateChildFn = (_, state) =>\n inject(AuthSimpleGuardService).process(state.url);\n\n/**\n * Simple 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canMatch: [ authSimpleCanMatch ],\n * data: { guard: 'user1' }\n * }\n * ```\n */\nexport const authSimpleCanMatch: CanMatchFn = route => inject(AuthSimpleGuardService).process(route.path);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpInterceptorFn, HttpRequest } from '@angular/common/http';\nimport { inject } from '@angular/core';\n\nimport { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\n\nimport { SimpleTokenModel } from './simple.model';\nimport { mergeConfig } from '../../auth.config';\nimport { isAnonymous, throwErr } from '../base.interceptor';\nimport { CheckSimple } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\n\nfunction newReq(req: HttpRequest<unknown>, model: SimpleTokenModel, options: AlainAuthConfig): HttpRequest<unknown> {\n const { token_send_template, token_send_key } = options;\n const token = token_send_template!.replace(/\\$\\{([\\w]+)\\}/g, (_: string, g) => model[g]);\n switch (options.token_send_place) {\n case 'header':\n const obj: any = {};\n obj[token_send_key!] = token;\n req = req.clone({\n setHeaders: obj\n });\n break;\n case 'body':\n const body: any = req.body || {};\n body[token_send_key!] = token;\n req = req.clone({\n body\n });\n break;\n case 'url':\n req = req.clone({\n params: req.params.append(token_send_key!, token)\n });\n break;\n }\n return req;\n}\n\nexport const authSimpleInterceptor: HttpInterceptorFn = (req, next) => {\n const options = mergeConfig(inject(AlainConfigService));\n\n if (isAnonymous(req, options)) return next(req);\n\n const model = inject(DA_SERVICE_TOKEN).get() as SimpleTokenModel;\n if (CheckSimple(model)) return next(newReq(req, model, options));\n\n return throwErr(req, options);\n};\n","import { ITokenModel } from '../interface';\n\nexport class SimpleTokenModel implements ITokenModel {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n\n token: string | null | undefined;\n\n expired?: number;\n}\n","import { EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\n\nimport { CookieService } from '@delon/util/browser';\n\nimport { CookieStorageStore, DA_STORE_TOKEN, LocalStorageStore, MemoryStore, SessionStorageStore } from './store';\n\nexport enum AuthFeatureKind {\n Store\n}\n\nexport interface AuthFeature<KindT extends AuthFeatureKind> {\n ɵkind: KindT;\n ɵproviders: Provider[];\n}\n\nfunction makeAuthFeature<KindT extends AuthFeatureKind>(kind: KindT, providers: Provider[]): AuthFeature<KindT> {\n return {\n ɵkind: kind,\n ɵproviders: providers\n };\n}\n\n/**\n * Configures authentication process service to be available for injection.\n *\n * @see {@link withCookie}\n * @see {@link withLocalStorage}\n * @see {@link withSessionStorage}\n */\nexport function provideAuth(store?: AuthFeature<AuthFeatureKind.Store>): EnvironmentProviders {\n return makeEnvironmentProviders([(store ?? withLocalStorage()).ɵproviders]);\n}\n\n/** `cookie` storage */\nexport function withCookie(): AuthFeature<AuthFeatureKind.Store> {\n return makeAuthFeature(AuthFeatureKind.Store, [\n { provide: DA_STORE_TOKEN, useClass: CookieStorageStore, deps: [CookieService] }\n ]);\n}\n\n/** `localStorage` storage, **not lost after closing the browser**. */\nexport function withLocalStorage(): AuthFeature<AuthFeatureKind.Store> {\n return makeAuthFeature(AuthFeatureKind.Store, [{ provide: DA_STORE_TOKEN, useClass: LocalStorageStore }]);\n}\n\n/** `sessionStorage` storage, **lost after closing the browser**. */\nexport function withSessionStorage(): AuthFeature<AuthFeatureKind.Store> {\n return makeAuthFeature(AuthFeatureKind.Store, [{ provide: DA_STORE_TOKEN, useClass: SessionStorageStore }]);\n}\n\n/** Memory storage, **lost after closing the browser tab**. */\nexport function withMemoryStorage(): AuthFeature<AuthFeatureKind.Store> {\n return makeAuthFeature(AuthFeatureKind.Store, [{ provide: DA_STORE_TOKEN, useClass: MemoryStore }]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","newReq"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.mjs","sources":["../../../../packages/auth/src/auth.config.ts","../../../../packages/auth/src/store/local-storage.service.ts","../../../../packages/auth/src/store/interface.ts","../../../../packages/auth/src/token/token.service.ts","../../../../packages/auth/src/token/interface.ts","../../../../packages/auth/src/social/social.service.ts","../../../../packages/auth/src/store/memory.service.ts","../../../../packages/auth/src/store/session-storage.service.ts","../../../../packages/auth/src/store/cookie-storage.service.ts","../../../../packages/auth/src/token/jwt/jwt.helper.ts","../../../../packages/auth/src/token/jwt/jwt.model.ts","../../../../packages/auth/src/token/helper.ts","../../../../packages/auth/src/token/jwt/jwt.guard.ts","../../../../packages/auth/src/token.ts","../../../../packages/auth/src/token/base.interceptor.ts","../../../../packages/auth/src/token/jwt/jwt.interceptor.ts","../../../../packages/auth/src/token/simple/simple.guard.ts","../../../../packages/auth/src/token/simple/simple.interceptor.ts","../../../../packages/auth/src/token/simple/simple.model.ts","../../../../packages/auth/src/provide.ts","../../../../packages/auth/auth.ts"],"sourcesContent":["import type { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\n\nexport const AUTH_DEFAULT_CONFIG: AlainAuthConfig = {\n store_key: `_token`,\n token_invalid_redirect: true,\n token_exp_offset: 10,\n token_send_key: `token`,\n token_send_template: '${token}',\n token_send_place: 'header',\n login_url: '/login',\n refreshTime: 3000,\n refreshOffset: 6000\n};\n\nexport function mergeConfig(srv: AlainConfigService): AlainAuthConfig {\n return srv.merge('auth', AUTH_DEFAULT_CONFIG)!;\n}\n","import { IStore } from './interface';\nimport { ITokenModel } from '../token/interface';\n\nexport function DA_STORE_TOKEN_LOCAL_FACTORY(): IStore {\n return new LocalStorageStore();\n}\n\n/**\n * `localStorage` storage, **not lost after closing the browser**.\n *\n * ```ts\n * provideAuth(withJWT(), withLocalStorage())\n * ```\n */\nexport class LocalStorageStore implements IStore {\n get(key: string): ITokenModel {\n return JSON.parse(localStorage.getItem(key) || '{}') || {};\n }\n\n set(key: string, value: ITokenModel | null): boolean {\n localStorage.setItem(key, JSON.stringify(value));\n return true;\n }\n\n remove(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { DA_STORE_TOKEN_LOCAL_FACTORY } from './local-storage.service';\nimport { ITokenModel } from '../token/interface';\n\nexport const DA_STORE_TOKEN = new InjectionToken<IStore>('AUTH_STORE_TOKEN', {\n providedIn: 'root',\n factory: DA_STORE_TOKEN_LOCAL_FACTORY\n});\n\nexport interface IStore {\n get(key: string): ITokenModel;\n\n set(key: string, value: ITokenModel): boolean;\n\n remove(key: string): void;\n}\n","import { inject, Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, interval, Observable, Subject, Subscription, filter, map, share } from 'rxjs';\n\nimport { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\n\nimport { AuthReferrer, ITokenModel, ITokenService } from './interface';\nimport { mergeConfig } from '../auth.config';\nimport { DA_STORE_TOKEN } from '../store/interface';\n\nexport function DA_SERVICE_TOKEN_FACTORY(): ITokenService {\n return new TokenService(inject(AlainConfigService));\n}\n\n/**\n * 维护Token信息服务,[在线文档](https://ng-alain.com/auth)\n */\n@Injectable()\nexport class TokenService implements ITokenService, OnDestroy {\n private readonly store = inject(DA_STORE_TOKEN);\n private refresh$ = new Subject<ITokenModel>();\n private change$ = new BehaviorSubject<ITokenModel | null>(null);\n private interval$?: Subscription;\n private _referrer: AuthReferrer = {};\n private _options: AlainAuthConfig;\n\n constructor(configSrv: AlainConfigService) {\n this._options = mergeConfig(configSrv);\n }\n\n get refresh(): Observable<ITokenModel> {\n this.builderRefresh();\n return this.refresh$.pipe(share());\n }\n\n get login_url(): string | undefined {\n return this._options.login_url;\n }\n\n get referrer(): AuthReferrer {\n return this._referrer;\n }\n\n get options(): AlainAuthConfig {\n return this._options;\n }\n\n set(data: ITokenModel): boolean {\n const res = this.store.set(this._options.store_key!, data);\n this.change$.next(data);\n return res;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(type?: any): any;\n get<T extends ITokenModel>(type?: new () => T): T;\n get<T extends ITokenModel>(type?: new () => T): T {\n const data = this.store.get(this._options.store_key!);\n return type ? (Object.assign(new type(), data) as T) : (data as T);\n }\n\n clear(options: { onlyToken: boolean } = { onlyToken: false }): void {\n let data: ITokenModel | null = null;\n if (options.onlyToken === true) {\n data = this.get() as ITokenModel;\n data.token = ``;\n this.set(data);\n } else {\n this.store.remove(this._options.store_key!);\n }\n this.change$.next(data);\n }\n\n change(): Observable<ITokenModel | null> {\n return this.change$.pipe(share());\n }\n\n private builderRefresh(): void {\n const { refreshTime, refreshOffset } = this._options;\n this.cleanRefresh();\n this.interval$ = interval(refreshTime)\n .pipe(\n map(() => {\n const item = this.get() as ITokenModel;\n const expired = item.expired || item.exp || 0;\n if (expired <= 0) {\n return null;\n }\n\n const curTime = new Date().valueOf() + refreshOffset!;\n return expired <= curTime ? item : null;\n }),\n filter(v => v != null)\n )\n .subscribe(res => this.refresh$.next(res!));\n }\n\n private cleanRefresh(): void {\n if (this.interval$ && !this.interval$.closed) {\n this.interval$.unsubscribe();\n }\n }\n\n ngOnDestroy(): void {\n this.cleanRefresh();\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { DA_SERVICE_TOKEN_FACTORY } from './token.service';\n\nexport const DA_SERVICE_TOKEN = new InjectionToken<ITokenService>('DA_SERVICE_TOKEN', {\n providedIn: 'root',\n factory: DA_SERVICE_TOKEN_FACTORY\n});\n\nexport interface ITokenModel {\n [key: string]: any;\n\n token: string | null | undefined;\n\n /**\n * 过期时间,单位:ms\n * - 不管Simple、JWT模式都必须指定\n */\n expired?: number;\n}\n\nexport interface AuthReferrer {\n url?: string | null | undefined;\n}\n\nexport interface ITokenService {\n /**\n * 授权失败后跳转路由路径(支持外部链接地址),通过设置[全局配置](https://ng-alain.com/docs/global-config)来改变\n */\n readonly login_url: string | undefined;\n\n /**\n * 当前请求页面的来源页面的地址\n */\n readonly referrer?: AuthReferrer;\n\n readonly options: AlainAuthConfig;\n\n /**\n * 订阅刷新,订阅时会自动产生一个定时器,每隔一段时间进行一些校验\n * - **注意** 会多次触发,请务必做好业务判断\n */\n readonly refresh: Observable<ITokenModel>;\n\n /**\n * 设置 Token 信息,当用户 Token 发生变动时都需要调用此方法重新刷新\n * - 如果需要监听过期,需要传递 `expired` 值\n */\n set(data: ITokenModel | null): boolean;\n\n /**\n * 获取Token,形式包括:\n * - `get()` 获取 Simple Token\n * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token\n */\n get(type?: any): ITokenModel | null;\n\n /**\n * 获取Token,形式包括:\n * - `get()` 获取 Simple Token\n * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token\n */\n get<T extends ITokenModel>(type?: any): T;\n\n /**\n * 清除 Token 信息,当用户退出登录时调用。\n * ```\n * // 清除所有 Token 信息\n * tokenService.clear();\n * // 只清除 token 字段\n * tokenService.clear({ onlyToken: true });\n * ```\n */\n clear(options?: { onlyToken: boolean }): void;\n\n /**\n * 订阅 Token 对象变更通知\n */\n change(): Observable<ITokenModel | null>;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DOCUMENT } from '@angular/common';\nimport { Injectable, OnDestroy, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable, Observer } from 'rxjs';\n\nimport { DA_SERVICE_TOKEN, ITokenModel } from '../token/interface';\n\nconst OPENTYPE = '_delonAuthSocialType';\nconst HREFCALLBACK = '_delonAuthSocialCallbackByHref';\n\nexport type SocialOpenType = 'href' | 'window';\n\n@Injectable()\nexport class SocialService implements OnDestroy {\n private readonly tokenService = inject(DA_SERVICE_TOKEN);\n private readonly doc = inject(DOCUMENT);\n private readonly router = inject(Router);\n\n private _win: Window | null = null;\n private _winTime: any;\n private observer!: Observer<ITokenModel | null>;\n\n /**\n * 使用窗体打开授权页,返回值是 `Observable<ITokenModel>` 用于订阅授权后返回的结果\n *\n * @param url 获取授权地址\n * @param callback 回调路由地址\n * @param options.windowFeatures 等同 `window.open` 的 `features` 参数值\n */\n login(\n url: string,\n callback?: string,\n options?: {\n type?: 'window';\n windowFeatures?: string;\n }\n ): Observable<ITokenModel>;\n\n /**\n * 跳转至授权页\n *\n * @param url 获取授权地址\n * @param callback 回调路由地址\n */\n login(\n url: string,\n callback?: string,\n options?: {\n type?: 'href';\n }\n ): void;\n\n /**\n * 跳转至登录页,若为 `type=window` 时,返回值是 `Observable<ITokenModel>`\n *\n * @param url 获取授权地址\n * @param callback 当 `type=href` 成功时的回调路由地址\n * @param options.type 打开方式,默认 `window`\n * @param options.windowFeatures 等同 `window.open` 的 `features` 参数值\n */\n login(\n url: string,\n callback: string = '/',\n options: {\n type?: SocialOpenType;\n windowFeatures?: string;\n } = {}\n ): Observable<ITokenModel | null> | void {\n options = {\n type: 'window',\n windowFeatures: 'location=yes,height=570,width=520,scrollbars=yes,status=yes',\n ...options\n };\n localStorage.setItem(OPENTYPE, options.type!);\n localStorage.setItem(HREFCALLBACK, callback);\n if (options.type === 'href') {\n this.doc.location.href = url;\n return;\n }\n\n this._win = window.open(url, '_blank', options.windowFeatures);\n this._winTime = setInterval(() => {\n if (this._win && this._win.closed) {\n this.ngOnDestroy();\n\n let model = this.tokenService.get();\n if (model && !model.token) model = null;\n\n // 触发变更通知\n if (model) {\n this.tokenService.set(model);\n }\n\n this.observer.next(model);\n this.observer.complete();\n }\n }, 100);\n return new Observable((observer: Observer<ITokenModel | null>) => {\n this.observer = observer;\n });\n }\n\n /**\n * 授权成功后的回调处理\n *\n * @param rawData 指定回调认证信息,为空时从根据当前URL解析\n */\n callback(rawData?: ITokenModel | string | null): ITokenModel {\n // from uri\n if (!rawData && this.router.url.indexOf('?') === -1) {\n throw new Error(`url muse contain a ?`);\n }\n // parse\n let data: ITokenModel = { token: `` };\n if (typeof rawData === 'string') {\n const rightUrl = rawData.split('?')[1].split('#')[0];\n data = this.router.parseUrl(`./?${rightUrl}`).queryParams as ITokenModel;\n } else {\n data = rawData as ITokenModel;\n }\n\n if (!data || !data.token) throw new Error(`invalide token data`);\n this.tokenService.set(data);\n\n const url = localStorage.getItem(HREFCALLBACK) || '/';\n localStorage.removeItem(HREFCALLBACK);\n const type = localStorage.getItem(OPENTYPE);\n localStorage.removeItem(OPENTYPE);\n if (type === 'window') {\n window.close();\n } else {\n this.router.navigateByUrl(url);\n }\n\n return data;\n }\n\n ngOnDestroy(): void {\n clearInterval(this._winTime);\n this._winTime = null;\n }\n}\n","import { IStore } from './interface';\nimport { ITokenModel } from '../token/interface';\n\n/**\n * 内存存储,关掉浏览器标签后**丢失**。\n */\nexport class MemoryStore implements IStore {\n private cache: { [key: string]: ITokenModel | null } = {};\n\n get(key: string): ITokenModel {\n return this.cache[key] || ({} as ITokenModel);\n }\n\n set(key: string, value: ITokenModel): boolean {\n this.cache[key] = value;\n return true;\n }\n\n remove(key: string): void {\n this.cache[key] = null;\n }\n}\n","import { IStore } from './interface';\nimport { ITokenModel } from '../token/interface';\n\n/**\n * `sessionStorage` storage, **lost after closing the browser**.\n *\n * ```ts\n * provideAuth(withJWT(), withSessionStorage())\n * ```\n */\nexport class SessionStorageStore implements IStore {\n get(key: string): ITokenModel {\n return JSON.parse(sessionStorage.getItem(key) || '{}') || {};\n }\n\n set(key: string, value: ITokenModel | null): boolean {\n sessionStorage.setItem(key, JSON.stringify(value));\n return true;\n }\n\n remove(key: string): void {\n sessionStorage.removeItem(key);\n }\n}\n","import { inject } from '@angular/core';\n\nimport { CookieService } from '@delon/util/browser';\n\nimport { IStore } from './interface';\nimport { ITokenModel } from '../token/interface';\n\n/**\n * `cookie` storage\n *\n * ```ts\n * provideAuth(withJWT(), withCookie())\n * ```\n */\nexport class CookieStorageStore implements IStore {\n private readonly srv = inject(CookieService);\n\n get(key: string): ITokenModel {\n try {\n return JSON.parse(this.srv.get(key) || '{}');\n } catch (ex) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.error(`CookieStorageStore: Invalid key-value format ${key}`, ex);\n }\n return {} as ITokenModel;\n }\n }\n\n set(key: string, value: ITokenModel | null | undefined): boolean {\n const expires = (value?.expired ?? 0) / 1e3;\n this.srv.put(key, JSON.stringify(value ?? {}), { expires });\n return true;\n }\n\n remove(key: string): void {\n this.srv.remove(key);\n }\n}\n","export function urlBase64Decode(str: string): string {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw new Error(`'atob' failed: The string to be decoded is not correctly encoded.`);\n }\n }\n return b64DecodeUnicode(output);\n}\n\nfunction b64decode(str: string): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n\n str = String(str).replace(/=+$/, '');\n\n for (\n // initialize result and counters\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let bc = 0, bs: any, buffer: any, idx = 0;\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4)\n ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\n : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\n// https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\nfunction b64DecodeUnicode(str: string): string {\n return decodeURIComponent(\n Array.prototype.map\n .call(b64decode(str), (c: string) => {\n return `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`;\n })\n .join('')\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { urlBase64Decode } from './jwt.helper';\nimport { ITokenModel } from '../interface';\n\nexport interface JWT {\n /**\n * Issuerd\n */\n iss: string;\n /**\n * Issued At\n */\n iat: string;\n /**\n * Subject\n */\n sub: string;\n /**\n * Expiration Time\n */\n exp: number;\n /**\n * Audience\n */\n aud: string;\n /**\n * Not Before\n */\n nbf: string;\n /**\n * JWT ID\n */\n jti: string;\n\n [key: string]: any;\n [key: number]: any;\n}\n\nexport class JWTTokenModel implements ITokenModel {\n [key: string]: any;\n\n token: string | null | undefined;\n\n expired?: number;\n\n /**\n * 获取载荷信息\n */\n get payload(): JWT {\n const parts = (this.token || '').split('.');\n if (parts.length !== 3) throw new Error('JWT must have 3 parts');\n\n const decoded = urlBase64Decode(parts[1]);\n return JSON.parse(decoded);\n }\n\n /**\n * 获取过期时间戳(单位:ms)\n */\n get exp(): number | null {\n const decoded = this.payload;\n if (!decoded.hasOwnProperty('exp')) return null;\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n return date.valueOf();\n }\n\n /**\n * 检查Token是否过期,当`payload` 包含 `exp` 字段时有效,若无 `exp` 字段直接返回 `null`\n *\n * @param offsetSeconds 偏移量\n */\n isExpired(offsetSeconds: number = 0): boolean | null {\n const exp = this.exp;\n if (exp == null) return null;\n\n return !(exp > new Date().valueOf() + offsetSeconds * 1000);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { DA_SERVICE_TOKEN, ITokenService } from './interface';\nimport { JWTTokenModel } from './jwt/jwt.model';\nimport { SimpleTokenModel } from './simple/simple.model';\n\nexport function CheckSimple(model: SimpleTokenModel | null): boolean {\n return model != null && typeof model.token === 'string' && model.token.length > 0;\n}\n\nexport function CheckJwt(model: JWTTokenModel, offset: number): boolean {\n try {\n return model != null && !!model.token && !model.isExpired(offset);\n } catch (err: unknown) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`${(err as { message: string }).message}, jump to login_url`);\n }\n return false;\n }\n}\n\nexport function ToLogin(options: AlainAuthConfig, url?: string): void {\n const router = inject(Router);\n const token = inject(DA_SERVICE_TOKEN) as ITokenService;\n const doc = inject(DOCUMENT);\n token.referrer!.url = url || router.url;\n if (options.token_invalid_redirect === true) {\n setTimeout(() => {\n if (/^https?:\\/\\//g.test(options.login_url!)) {\n doc.location.href = options.login_url as string;\n } else {\n router.navigate([options.login_url]);\n }\n });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { CanActivateChildFn, CanActivateFn, CanMatchFn } from '@angular/router';\n\nimport { JWTTokenModel } from './jwt.model';\nimport { CheckJwt, ToLogin } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthJWTGuardService {\n private readonly srv = inject(DA_SERVICE_TOKEN);\n\n process(url?: string): boolean {\n const cog = this.srv.options;\n const res = CheckJwt(this.srv.get<JWTTokenModel>(JWTTokenModel), cog.token_exp_offset!);\n if (!res) {\n ToLogin(cog, url);\n }\n return res;\n }\n}\n\n/**\n * JWT 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivate: [ authJWTCanActivate ],\n * data: { guard: 'user1' }\n * }\n * ```\n */\nexport const authJWTCanActivate: CanActivateFn = (_, state) => inject(AuthJWTGuardService).process(state.url);\n\n/**\n * JWT 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivateChild: [ authJWTCanActivateChild ],\n * data: { guard: 'user1' }\n * }\n * ```\n */\nexport const authJWTCanActivateChild: CanActivateChildFn = (_, state) => inject(AuthJWTGuardService).process(state.url);\n\n/**\n * JWT 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canMatch: [ authJWTCanMatch ],\n * data: { guard: 'user1' }\n * }\n * ```\n */\nexport const authJWTCanMatch: CanMatchFn = route => inject(AuthJWTGuardService).process(route.path);\n","import { HttpContextToken } from '@angular/common/http';\n\n/**\n * Whether to allow anonymous login\n *\n * 是否允许匿名登录\n *\n * @example\n * this.http.post(`login`, {\n * name: 'cipchk', pwd: '123456'\n * }, {\n * context: new HttpContext().set(ALLOW_ANONYMOUS, true)\n * })\n */\nexport const ALLOW_ANONYMOUS = new HttpContextToken(() => false);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpErrorResponse, HttpEvent, HttpRequest } from '@angular/common/http';\nimport { Observable, Observer } from 'rxjs';\n\nimport { AlainAuthConfig } from '@delon/util/config';\n\nimport { ToLogin } from './helper';\nimport { ALLOW_ANONYMOUS } from '../token';\n\nexport function isAnonymous(req: HttpRequest<unknown>, options: AlainAuthConfig): boolean {\n if (req.context.get(ALLOW_ANONYMOUS)) return true;\n if (Array.isArray(options.ignores)) {\n for (const item of options.ignores) {\n if (item.test(req.url)) return true;\n }\n }\n return false;\n}\n\nexport function throwErr(req: HttpRequest<unknown>, options: AlainAuthConfig): Observable<HttpEvent<unknown>> {\n ToLogin(options);\n\n // Interrupt Http request, so need to generate a new Observable\n return new Observable((observer: Observer<HttpEvent<any>>) => {\n let statusText = '';\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n statusText = `来自 @delon/auth 的拦截,所请求URL未授权,若是登录API可加入 new HttpContext().set(ALLOW_ANONYMOUS, true) 来表示忽略校验,更多方法请参考: https://ng-alain.com/auth/getting-started#AlainAuthConfig\\nThe interception from @delon/auth, the requested URL is not authorized. If the login API can add new HttpContext().set(ALLOW_ANONYMOUS, true) to ignore the check, please refer to: https://ng-alain.com/auth/getting-started#AlainAuthConfig`;\n }\n const res = new HttpErrorResponse({\n url: req.url,\n headers: req.headers,\n status: 401,\n statusText\n });\n observer.error(res);\n });\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpInterceptorFn, HttpRequest } from '@angular/common/http';\nimport { inject } from '@angular/core';\n\nimport { AlainConfigService } from '@delon/util/config';\n\nimport { JWTTokenModel } from './jwt.model';\nimport { mergeConfig } from '../../auth.config';\nimport { isAnonymous, throwErr } from '../base.interceptor';\nimport { CheckJwt } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\n\nfunction newReq(req: HttpRequest<unknown>, model: JWTTokenModel): HttpRequest<unknown> {\n return req.clone({\n setHeaders: {\n Authorization: `Bearer ${model.token}`\n }\n });\n}\n\nexport const authJWTInterceptor: HttpInterceptorFn = (req, next) => {\n const options = mergeConfig(inject(AlainConfigService));\n\n if (isAnonymous(req, options)) return next(req);\n\n const model = inject(DA_SERVICE_TOKEN).get<JWTTokenModel>(JWTTokenModel);\n if (CheckJwt(model, options.token_exp_offset!)) return next(newReq(req, model));\n\n return throwErr(req, options);\n};\n","import { Injectable, inject } from '@angular/core';\nimport { CanActivateChildFn, CanActivateFn, CanMatchFn } from '@angular/router';\n\nimport { SimpleTokenModel } from './simple.model';\nimport { CheckSimple, ToLogin } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthSimpleGuardService {\n private readonly srv = inject(DA_SERVICE_TOKEN);\n\n process(url?: string): boolean {\n const res = CheckSimple(this.srv.get() as SimpleTokenModel);\n if (!res) {\n ToLogin(this.srv.options, url);\n }\n return res;\n }\n}\n\n/**\n * Simple 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivate: [ authSimpleCanActivate ],\n * data: { guard: 'user1' }\n * }\n * ```\n */\nexport const authSimpleCanActivate: CanActivateFn = (_, state) => inject(AuthSimpleGuardService).process(state.url);\n\n/**\n * Simple 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canActivateChild: [ authSimpleCanActivateChild ],\n * data: { guard: 'user1' }\n * }\n * ```\n */\nexport const authSimpleCanActivateChild: CanActivateChildFn = (_, state) =>\n inject(AuthSimpleGuardService).process(state.url);\n\n/**\n * Simple 路由守卫, [ACL Document](https://ng-alain.com/auth/guard).\n *\n * ```ts\n * data: {\n * path: 'home',\n * canMatch: [ authSimpleCanMatch ],\n * data: { guard: 'user1' }\n * }\n * ```\n */\nexport const authSimpleCanMatch: CanMatchFn = route => inject(AuthSimpleGuardService).process(route.path);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpInterceptorFn, HttpRequest } from '@angular/common/http';\nimport { inject } from '@angular/core';\n\nimport { AlainAuthConfig, AlainConfigService } from '@delon/util/config';\n\nimport { SimpleTokenModel } from './simple.model';\nimport { mergeConfig } from '../../auth.config';\nimport { isAnonymous, throwErr } from '../base.interceptor';\nimport { CheckSimple } from '../helper';\nimport { DA_SERVICE_TOKEN } from '../interface';\n\nfunction newReq(req: HttpRequest<unknown>, model: SimpleTokenModel, options: AlainAuthConfig): HttpRequest<unknown> {\n const { token_send_template, token_send_key } = options;\n const token = token_send_template!.replace(/\\$\\{([\\w]+)\\}/g, (_: string, g) => model[g]);\n switch (options.token_send_place) {\n case 'header':\n const obj: any = {};\n obj[token_send_key!] = token;\n req = req.clone({\n setHeaders: obj\n });\n break;\n case 'body':\n const body: any = req.body || {};\n body[token_send_key!] = token;\n req = req.clone({\n body\n });\n break;\n case 'url':\n req = req.clone({\n params: req.params.append(token_send_key!, token)\n });\n break;\n }\n return req;\n}\n\nexport const authSimpleInterceptor: HttpInterceptorFn = (req, next) => {\n const options = mergeConfig(inject(AlainConfigService));\n\n if (isAnonymous(req, options)) return next(req);\n\n const model = inject(DA_SERVICE_TOKEN).get() as SimpleTokenModel;\n if (CheckSimple(model)) return next(newReq(req, model, options));\n\n return throwErr(req, options);\n};\n","import { ITokenModel } from '../interface';\n\nexport class SimpleTokenModel implements ITokenModel {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n\n token: string | null | undefined;\n\n expired?: number;\n}\n","import { EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\n\nimport { CookieService } from '@delon/util/browser';\n\nimport { CookieStorageStore, DA_STORE_TOKEN, LocalStorageStore, MemoryStore, SessionStorageStore } from './store';\n\nexport enum AuthFeatureKind {\n Store\n}\n\nexport interface AuthFeature<KindT extends AuthFeatureKind> {\n ɵkind: KindT;\n ɵproviders: Provider[];\n}\n\nfunction makeAuthFeature<KindT extends AuthFeatureKind>(kind: KindT, providers: Provider[]): AuthFeature<KindT> {\n return {\n ɵkind: kind,\n ɵproviders: providers\n };\n}\n\n/**\n * Configures authentication process service to be available for injection.\n *\n * @see {@link withCookie}\n * @see {@link withLocalStorage}\n * @see {@link withSessionStorage}\n */\nexport function provideAuth(store?: AuthFeature<AuthFeatureKind.Store>): EnvironmentProviders {\n return makeEnvironmentProviders([(store ?? withLocalStorage()).ɵproviders]);\n}\n\n/** `cookie` storage */\nexport function withCookie(): AuthFeature<AuthFeatureKind.Store> {\n return makeAuthFeature(AuthFeatureKind.Store, [\n { provide: DA_STORE_TOKEN, useClass: CookieStorageStore, deps: [CookieService] }\n ]);\n}\n\n/** `localStorage` storage, **not lost after closing the browser**. */\nexport function withLocalStorage(): AuthFeature<AuthFeatureKind.Store> {\n return makeAuthFeature(AuthFeatureKind.Store, [{ provide: DA_STORE_TOKEN, useClass: LocalStorageStore }]);\n}\n\n/** `sessionStorage` storage, **lost after closing the browser**. */\nexport function withSessionStorage(): AuthFeature<AuthFeatureKind.Store> {\n return makeAuthFeature(AuthFeatureKind.Store, [{ provide: DA_STORE_TOKEN, useClass: SessionStorageStore }]);\n}\n\n/** Memory storage, **lost after closing the browser tab**. */\nexport function withMemoryStorage(): AuthFeature<AuthFeatureKind.Store> {\n return makeAuthFeature(AuthFeatureKind.Store, [{ provide: DA_STORE_TOKEN, useClass: MemoryStore }]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["newReq"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@delon/auth",
|
|
3
|
-
"version": "17.0
|
|
3
|
+
"version": "17.2.0",
|
|
4
4
|
"author": "cipchk<cipchk@qq.com>",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"ng-zorro-antd"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@delon/util": "^17.0
|
|
28
|
+
"@delon/util": "^17.2.0",
|
|
29
29
|
"tslib": "^2.3.0"
|
|
30
30
|
},
|
|
31
31
|
"module": "fesm2022/auth.mjs",
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
2
|
import { Observable } from 'rxjs';
|
|
4
|
-
import { ITokenModel
|
|
3
|
+
import { ITokenModel } from '../token/interface';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
5
|
export type SocialOpenType = 'href' | 'window';
|
|
7
6
|
export declare class SocialService implements OnDestroy {
|
|
8
|
-
private tokenService;
|
|
9
|
-
private doc;
|
|
10
|
-
private router;
|
|
7
|
+
private readonly tokenService;
|
|
8
|
+
private readonly doc;
|
|
9
|
+
private readonly router;
|
|
11
10
|
private _win;
|
|
12
11
|
private _winTime;
|
|
13
12
|
private observer;
|
|
14
|
-
constructor(tokenService: ITokenService, doc: any, router: Router);
|
|
15
13
|
/**
|
|
16
14
|
* 使用窗体打开授权页,返回值是 `Observable<ITokenModel>` 用于订阅授权后返回的结果
|
|
17
15
|
*
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { CookieService } from '@delon/util/browser';
|
|
2
1
|
import { IStore } from './interface';
|
|
3
2
|
import { ITokenModel } from '../token/interface';
|
|
4
3
|
/**
|
|
@@ -9,8 +8,7 @@ import { ITokenModel } from '../token/interface';
|
|
|
9
8
|
* ```
|
|
10
9
|
*/
|
|
11
10
|
export declare class CookieStorageStore implements IStore {
|
|
12
|
-
private srv;
|
|
13
|
-
constructor(srv: CookieService);
|
|
11
|
+
private readonly srv;
|
|
14
12
|
get(key: string): ITokenModel;
|
|
15
13
|
set(key: string, value: ITokenModel | null | undefined): boolean;
|
|
16
14
|
remove(key: string): void;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { CanActivateChildFn, CanActivateFn, CanMatchFn } from '@angular/router';
|
|
2
|
-
import { ITokenService } from '../interface';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
export declare class AuthJWTGuardService {
|
|
5
|
-
private srv;
|
|
6
|
-
constructor(srv: ITokenService);
|
|
4
|
+
private readonly srv;
|
|
7
5
|
process(url?: string): boolean;
|
|
8
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuthJWTGuardService, never>;
|
|
9
7
|
static ɵprov: i0.ɵɵInjectableDeclaration<AuthJWTGuardService>;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { CanActivateChildFn, CanActivateFn, CanMatchFn } from '@angular/router';
|
|
2
|
-
import { ITokenService } from '../interface';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
export declare class AuthSimpleGuardService {
|
|
5
|
-
private srv;
|
|
6
|
-
constructor(srv: ITokenService);
|
|
4
|
+
private readonly srv;
|
|
7
5
|
process(url?: string): boolean;
|
|
8
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuthSimpleGuardService, never>;
|
|
9
7
|
static ɵprov: i0.ɵɵInjectableDeclaration<AuthSimpleGuardService>;
|
|
@@ -2,20 +2,19 @@ import { OnDestroy } from '@angular/core';
|
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { AlainAuthConfig, AlainConfigService } from '@delon/util/config';
|
|
4
4
|
import { AuthReferrer, ITokenModel, ITokenService } from './interface';
|
|
5
|
-
import { IStore } from '../store/interface';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
export declare function DA_SERVICE_TOKEN_FACTORY(): ITokenService;
|
|
8
7
|
/**
|
|
9
8
|
* 维护Token信息服务,[在线文档](https://ng-alain.com/auth)
|
|
10
9
|
*/
|
|
11
10
|
export declare class TokenService implements ITokenService, OnDestroy {
|
|
12
|
-
private store;
|
|
11
|
+
private readonly store;
|
|
13
12
|
private refresh$;
|
|
14
13
|
private change$;
|
|
15
14
|
private interval$?;
|
|
16
15
|
private _referrer;
|
|
17
16
|
private _options;
|
|
18
|
-
constructor(configSrv: AlainConfigService
|
|
17
|
+
constructor(configSrv: AlainConfigService);
|
|
19
18
|
get refresh(): Observable<ITokenModel>;
|
|
20
19
|
get login_url(): string | undefined;
|
|
21
20
|
get referrer(): AuthReferrer;
|