ngx-oauth 3.0.0 → 4.0.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/README.md +7 -24
- package/esm2020/lib/components/login/oauth-login.component.mjs +32 -24
- package/esm2020/lib/models/index.mjs +27 -2
- package/esm2020/lib/oauth.module.mjs +17 -34
- package/esm2020/lib/services/oauth.interceptor.mjs +31 -34
- package/esm2020/lib/services/oauth.service.mjs +116 -240
- package/esm2020/lib/services/token.service.mjs +80 -0
- package/fesm2015/ngx-oauth.mjs +235 -303
- package/fesm2015/ngx-oauth.mjs.map +1 -1
- package/fesm2020/ngx-oauth.mjs +280 -325
- package/fesm2020/ngx-oauth.mjs.map +1 -1
- package/lib/components/login/oauth-login.component.d.ts +7 -9
- package/lib/models/index.d.ts +21 -14
- package/lib/oauth.module.d.ts +1 -1
- package/lib/services/oauth.interceptor.d.ts +7 -6
- package/lib/services/oauth.service.d.ts +25 -44
- package/lib/services/token.service.d.ts +22 -0
- package/package.json +1 -1
|
@@ -1,41 +1,38 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { throwError } from 'rxjs';
|
|
3
|
-
import { catchError } from 'rxjs/operators';
|
|
4
|
-
import { OAuthStatus } from '../models';
|
|
2
|
+
import { switchMap, take, throwError } from 'rxjs';
|
|
3
|
+
import { catchError, map } from 'rxjs/operators';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "./
|
|
5
|
+
import * as i1 from "./token.service";
|
|
6
|
+
import * as i2 from "../models";
|
|
7
7
|
export class OAuthInterceptor {
|
|
8
|
-
constructor(
|
|
9
|
-
this.
|
|
8
|
+
constructor(tokenService, authConfig) {
|
|
9
|
+
this.tokenService = tokenService;
|
|
10
|
+
this.authConfig = authConfig;
|
|
10
11
|
}
|
|
11
12
|
intercept(req, next) {
|
|
12
|
-
|
|
13
|
-
if (!this.isPathExcepted(req)) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
}
|
|
13
|
+
return this.tokenService.token$.pipe(take(1), map(token => {
|
|
14
|
+
if (token?.access_token && !this.isPathExcepted(req)) {
|
|
15
|
+
req = req.clone({
|
|
16
|
+
setHeaders: {
|
|
17
|
+
Authorization: `${token.token_type} ${token.access_token}`
|
|
18
|
+
}
|
|
19
|
+
});
|
|
22
20
|
}
|
|
23
|
-
return
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
21
|
+
return req;
|
|
22
|
+
}), switchMap(req => next.handle(req)), catchError((err) => {
|
|
23
|
+
if (err.status === 401 && !this.isPathExcepted(req)) {
|
|
24
|
+
this.tokenService.token = {
|
|
25
|
+
error: `${err.status}`,
|
|
26
|
+
error_description: err.message
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return throwError(() => err);
|
|
30
|
+
}));
|
|
34
31
|
}
|
|
35
32
|
isPathExcepted(req) {
|
|
36
|
-
const { ignorePaths } = this.
|
|
33
|
+
const { ignorePaths } = this.authConfig || {};
|
|
37
34
|
if (ignorePaths) {
|
|
38
|
-
for (const ignorePath of
|
|
35
|
+
for (const ignorePath of ignorePaths) {
|
|
39
36
|
try {
|
|
40
37
|
if (req.url.match(ignorePath)) {
|
|
41
38
|
return true;
|
|
@@ -48,9 +45,9 @@ export class OAuthInterceptor {
|
|
|
48
45
|
return false;
|
|
49
46
|
}
|
|
50
47
|
}
|
|
51
|
-
OAuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
52
|
-
OAuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
48
|
+
OAuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: OAuthInterceptor, deps: [{ token: i1.TokenService }, { token: i2.OAuthConfig }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
49
|
+
OAuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: OAuthInterceptor });
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: OAuthInterceptor, decorators: [{
|
|
54
51
|
type: Injectable
|
|
55
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
}], ctorParameters: function () { return [{ type: i1.TokenService }, { type: i2.OAuthConfig }]; } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2F1dGgvc3JjL2xpYi9zZXJ2aWNlcy9vYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBSy9DLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBc0IsWUFBMEIsRUFDMUIsVUFBdUI7UUFEdkIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBYTtJQUM3QyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFDaEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2xDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDVixJQUFJLEtBQUssRUFBRSxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNwRCxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztvQkFDZCxVQUFVLEVBQUU7d0JBQ1YsYUFBYSxFQUFFLEdBQUcsS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFO3FCQUMzRDtpQkFDRixDQUFDLENBQUM7YUFDSjtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUNsQyxVQUFVLENBQUMsQ0FBQyxHQUFzQixFQUFFLEVBQUU7WUFDcEMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHO29CQUN4QixLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFO29CQUN0QixpQkFBaUIsRUFBRSxHQUFHLENBQUMsT0FBTztpQkFDL0IsQ0FBQzthQUNIO1lBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjLENBQUMsR0FBcUI7UUFDMUMsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQzVDLElBQUksV0FBVyxFQUFFO1lBQ2YsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUU7Z0JBQ3BDLElBQUk7b0JBQ0YsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTt3QkFDN0IsT0FBTyxJQUFJLENBQUM7cUJBQ2I7aUJBQ0Y7Z0JBQUMsT0FBTyxHQUFHLEVBQUU7aUJBQ2I7YUFDRjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs2R0E3Q1UsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtzd2l0Y2hNYXAsIHRha2UsIHRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7T0F1dGhDb25maWd9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge1Rva2VuU2VydmljZX0gZnJvbSAnLi90b2tlbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9BdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB0b2tlblNlcnZpY2U6IFRva2VuU2VydmljZSxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGF1dGhDb25maWc6IE9BdXRoQ29uZmlnKSB7XG4gIH1cblxuICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xuICAgIHJldHVybiB0aGlzLnRva2VuU2VydmljZS50b2tlbiQucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBtYXAodG9rZW4gPT4ge1xuICAgICAgICBpZiAodG9rZW4/LmFjY2Vzc190b2tlbiAmJiAhdGhpcy5pc1BhdGhFeGNlcHRlZChyZXEpKSB7XG4gICAgICAgICAgcmVxID0gcmVxLmNsb25lKHtcbiAgICAgICAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYCR7dG9rZW4udG9rZW5fdHlwZX0gJHt0b2tlbi5hY2Nlc3NfdG9rZW59YFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXE7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcChyZXEgPT4gbmV4dC5oYW5kbGUocmVxKSksXG4gICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDEgJiYgIXRoaXMuaXNQYXRoRXhjZXB0ZWQocmVxKSkge1xuICAgICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnRva2VuID0ge1xuICAgICAgICAgICAgZXJyb3I6IGAke2Vyci5zdGF0dXN9YCxcbiAgICAgICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiBlcnIubWVzc2FnZVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNQYXRoRXhjZXB0ZWQocmVxOiBIdHRwUmVxdWVzdDxhbnk+KSB7XG4gICAgY29uc3Qge2lnbm9yZVBhdGhzfSA9IHRoaXMuYXV0aENvbmZpZyB8fCB7fTtcbiAgICBpZiAoaWdub3JlUGF0aHMpIHtcbiAgICAgIGZvciAoY29uc3QgaWdub3JlUGF0aCBvZiBpZ25vcmVQYXRocykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmIChyZXEudXJsLm1hdGNoKGlnbm9yZVBhdGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
|