@auth-strategy-manager/rest 1.0.0 → 1.0.2
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 +15 -13
- package/dist/core/src/auth-strategy-manager.d.ts +3 -3
- package/dist/core/src/auth-strategy-manager.js +19 -14
- package/dist/core/src/auth-strategy-manager.js.map +1 -1
- package/dist/core/src/strategies/empty-strategy.d.ts +1 -1
- package/dist/core/src/strategies/empty-strategy.js +1 -1
- package/dist/core/src/strategies/empty-strategy.js.map +1 -1
- package/dist/core/src/types.d.ts +5 -5
- package/dist/rest/src/rest-strategy.d.ts +5 -5
- package/dist/rest/src/rest-strategy.js +17 -9
- package/dist/rest/src/rest-strategy.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -13,14 +13,6 @@ REST API strategy for auth-strategy-manager.
|
|
|
13
13
|
npm install @auth-strategy-manager/rest @auth-strategy-manager/core axios
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
or via meta-package:
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
npm install auth-strategy-manager @auth-strategy-manager/rest axios
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
> The meta-package will automatically install `@auth-strategy-manager/core` for you.
|
|
23
|
-
|
|
24
16
|
## Usage
|
|
25
17
|
|
|
26
18
|
```typescript
|
|
@@ -49,19 +41,28 @@ const restStrategy = new RestStrategy({
|
|
|
49
41
|
refresh: { url: '/auth/refresh', method: 'POST' },
|
|
50
42
|
|
|
51
43
|
// Custom token extraction function
|
|
52
|
-
getToken: (response:
|
|
44
|
+
getToken: (response: unknown) => (response as any).data?.access_token || (response as any).access_token
|
|
53
45
|
});
|
|
54
46
|
|
|
55
47
|
// Use with strategy manager
|
|
56
48
|
const authManager = new AuthStrategyManager([restStrategy]);
|
|
57
49
|
|
|
58
50
|
// Sign in with custom data
|
|
59
|
-
const loginResult = await restStrategy.signIn({
|
|
51
|
+
const loginResult = await restStrategy.signIn<unknown, AxiosRequestConfig>({
|
|
60
52
|
data: {
|
|
61
53
|
username: 'user@example.com',
|
|
62
54
|
password: 'password123'
|
|
63
55
|
}
|
|
64
56
|
});
|
|
57
|
+
|
|
58
|
+
// Check authentication
|
|
59
|
+
const isAuthenticated = await restStrategy.checkAuth();
|
|
60
|
+
|
|
61
|
+
// Sign out
|
|
62
|
+
await restStrategy.signOut();
|
|
63
|
+
|
|
64
|
+
// Очистка состояния
|
|
65
|
+
restStrategy.clear();
|
|
65
66
|
```
|
|
66
67
|
|
|
67
68
|
## Configuration
|
|
@@ -113,11 +114,12 @@ constructor(config: RestConfig)
|
|
|
113
114
|
|
|
114
115
|
#### Methods
|
|
115
116
|
|
|
116
|
-
- `
|
|
117
|
-
- `signIn<
|
|
118
|
-
- `signUp<
|
|
117
|
+
- `checkAuth(): Promise<boolean>` - Check authentication
|
|
118
|
+
- `signIn<T = unknown, D = undefined>(config?: D): Promise<T>` - Sign in user
|
|
119
|
+
- `signUp<T = unknown, D = undefined>(config?: D): Promise<T>` - Sign up user
|
|
119
120
|
- `signOut(): Promise<void>` - Sign out user
|
|
120
121
|
- `refreshToken(): Promise<void>` - Refresh token
|
|
122
|
+
- `clear(): void` - Clear authentication state
|
|
121
123
|
|
|
122
124
|
#### Properties
|
|
123
125
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { AuthStrategyManagerInterface, Strategy } from './types';
|
|
2
2
|
export declare class AuthStrategyManager implements AuthStrategyManagerInterface {
|
|
3
|
-
|
|
3
|
+
strategiesCount: number;
|
|
4
4
|
private strategies;
|
|
5
5
|
private readonly helper;
|
|
6
|
-
constructor(strategies
|
|
6
|
+
constructor(strategies?: Strategy[]);
|
|
7
7
|
get strategy(): Strategy;
|
|
8
8
|
get startUrl(): string | undefined;
|
|
9
9
|
set startUrl(url: string);
|
|
10
|
-
|
|
10
|
+
checkAuth: () => Promise<boolean>;
|
|
11
11
|
setStrategies: (strategies: Strategy[]) => Promise<void>;
|
|
12
12
|
use: (strategyName: string) => void;
|
|
13
13
|
clear: () => void;
|
|
@@ -20,14 +20,15 @@ const [baseUrl] = window.location.href.replace(`${protocol}//`, '').split('/');
|
|
|
20
20
|
const startUrl = `${protocol}//${baseUrl}`;
|
|
21
21
|
class AuthStrategyManager {
|
|
22
22
|
constructor(strategies) {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
var _a, _b;
|
|
24
|
+
this.checkAuth = () => __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
var _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
25
26
|
const strategyNames = Object.keys(this.strategies);
|
|
26
27
|
const strategyName = strategyNames[0];
|
|
27
28
|
if (strategyNames.length === 1) {
|
|
28
|
-
return yield this.strategies[strategyName].
|
|
29
|
+
return yield this.strategies[strategyName].checkAuth();
|
|
29
30
|
}
|
|
30
|
-
const actives = yield Promise.allSettled(strategyNames.map((strategyName) => this.strategies[strategyName].
|
|
31
|
+
const actives = yield Promise.allSettled(strategyNames.map((strategyName) => this.strategies[strategyName].checkAuth()));
|
|
31
32
|
let isAuthenticated = false;
|
|
32
33
|
for (let index = 0; index < actives.length; index++) {
|
|
33
34
|
const active = actives[index];
|
|
@@ -37,20 +38,21 @@ class AuthStrategyManager {
|
|
|
37
38
|
break;
|
|
38
39
|
}
|
|
39
40
|
if (active.status === 'rejected' &&
|
|
40
|
-
((
|
|
41
|
-
throw new errors_1.NetworkError((
|
|
41
|
+
((_d = (_c = active.reason) === null || _c === void 0 ? void 0 : _c.code) !== null && _d !== void 0 ? _d : (_e = active === null || active === void 0 ? void 0 : active.reason) === null || _e === void 0 ? void 0 : _e.message) === constants_1.NETWORK_ERROR_CODE) {
|
|
42
|
+
throw new errors_1.NetworkError((_f = active === null || active === void 0 ? void 0 : active.reason) === null || _f === void 0 ? void 0 : _f.message);
|
|
42
43
|
}
|
|
43
44
|
if (active.status === 'rejected' &&
|
|
44
|
-
((
|
|
45
|
-
throw new errors_1.Timeout3rdPartyError((
|
|
45
|
+
((_h = (_g = active.reason) === null || _g === void 0 ? void 0 : _g.code) !== null && _h !== void 0 ? _h : (_j = active === null || active === void 0 ? void 0 : active.reason) === null || _j === void 0 ? void 0 : _j.message) === constants_1.TIMEOUT_3RD_PARTY_ERROR_CODE) {
|
|
46
|
+
throw new errors_1.Timeout3rdPartyError((_k = active === null || active === void 0 ? void 0 : active.reason) === null || _k === void 0 ? void 0 : _k.message);
|
|
46
47
|
}
|
|
47
|
-
if (active.status === 'rejected' && ((
|
|
48
|
+
if (active.status === 'rejected' && ((_l = active.reason) === null || _l === void 0 ? void 0 : _l.code) === constants_1.CERT_ERROR_CODE) {
|
|
48
49
|
throw new errors_1.CertError();
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
52
|
return isAuthenticated;
|
|
52
53
|
});
|
|
53
54
|
this.setStrategies = (strategies) => __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
this.strategiesCount = strategies.length;
|
|
54
56
|
this.strategies = strategies.reduce((acc, strategy) => {
|
|
55
57
|
acc[strategy.name] = strategy;
|
|
56
58
|
return acc;
|
|
@@ -60,15 +62,18 @@ class AuthStrategyManager {
|
|
|
60
62
|
this.helper.activeStrategyName = strategyName;
|
|
61
63
|
};
|
|
62
64
|
this.clear = () => {
|
|
65
|
+
var _a, _b;
|
|
66
|
+
(_b = (_a = this.strategy).clear) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
63
67
|
this.helper.activeStrategyName = emptyStrategy.name;
|
|
64
68
|
this.startUrl = startUrl;
|
|
65
69
|
};
|
|
66
70
|
this.helper = helpers_1.strategyHelper;
|
|
67
|
-
this.strategiesCount = strategies.length;
|
|
68
|
-
this.strategies =
|
|
69
|
-
acc
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
this.strategiesCount = (_a = strategies === null || strategies === void 0 ? void 0 : strategies.length) !== null && _a !== void 0 ? _a : 0;
|
|
72
|
+
this.strategies =
|
|
73
|
+
(_b = strategies === null || strategies === void 0 ? void 0 : strategies.reduce((acc, strategy) => {
|
|
74
|
+
acc[strategy.name] = strategy;
|
|
75
|
+
return acc;
|
|
76
|
+
}, {})) !== null && _b !== void 0 ? _b : {};
|
|
72
77
|
}
|
|
73
78
|
get strategy() {
|
|
74
79
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-strategy-manager.js","sourceRoot":"","sources":["../../../../core/src/auth-strategy-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAyE;AACzE,2CAAgG;AAChG,uCAA2D;AAC3D,6CAA6C;AAI7C,MAAM,aAAa,GAAG,IAAI,0BAAa,EAAE,CAAC;AAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC1C,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE/E,MAAM,QAAQ,GAAG,GAAG,QAAQ,KAAK,OAAO,EAAE,CAAC;AAE3C,MAAa,mBAAmB;IAM9B,YAAY,
|
|
1
|
+
{"version":3,"file":"auth-strategy-manager.js","sourceRoot":"","sources":["../../../../core/src/auth-strategy-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { StrategyHelper } from '../helpers';
|
|
|
2
2
|
import { Strategy } from '../types';
|
|
3
3
|
export declare class EmptyStrategy extends StrategyHelper implements Strategy {
|
|
4
4
|
readonly name = "empty";
|
|
5
|
-
|
|
5
|
+
checkAuth: () => Promise<boolean>;
|
|
6
6
|
signIn: <T>() => Promise<T>;
|
|
7
7
|
signUp: <T>() => Promise<T>;
|
|
8
8
|
signOut: () => Promise<void>;
|
|
@@ -15,7 +15,7 @@ class EmptyStrategy extends helpers_1.StrategyHelper {
|
|
|
15
15
|
constructor() {
|
|
16
16
|
super(...arguments);
|
|
17
17
|
this.name = 'empty';
|
|
18
|
-
this.
|
|
18
|
+
this.checkAuth = () => __awaiter(this, void 0, void 0, function* () {
|
|
19
19
|
return false;
|
|
20
20
|
});
|
|
21
21
|
this.signIn = () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty-strategy.js","sourceRoot":"","sources":["../../../../../core/src/strategies/empty-strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA4C;AAG5C,MAAa,aAAc,SAAQ,wBAAc;IAAjD;;QACW,SAAI,GAAG,OAAO,CAAC;QAExB,
|
|
1
|
+
{"version":3,"file":"empty-strategy.js","sourceRoot":"","sources":["../../../../../core/src/strategies/empty-strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA4C;AAG5C,MAAa,aAAc,SAAQ,wBAAc;IAAjD;;QACW,SAAI,GAAG,OAAO,CAAC;QAExB,cAAS,GAAG,GAA2B,EAAE;YACvC,OAAO,KAAK,CAAC;QACf,CAAC,CAAA,CAAC;QAEF,WAAM,GAAG,GAAwB,EAAE;YACjC,OAAO,KAAU,CAAC;QACpB,CAAC,CAAA,CAAC;QAEF,WAAM,GAAG,GAAwB,EAAE;YACjC,OAAO,KAAU,CAAC;QACpB,CAAC,CAAA,CAAC;QAEF,YAAO,GAAG,GAAwB,EAAE;YAClC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAA,CAAC;QAEF,iBAAY,GAAG,GAAwB,EAAE,gDAAE,CAAC,CAAA,CAAC;QAE7C,mBAAc,GAAG,GAAwB,EAAE;YACzC,OAAO,SAAc,CAAC;QACxB,CAAC,CAAA,CAAC;IACJ,CAAC;CAAA;AAxBD,sCAwBC"}
|
package/dist/core/src/types.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AxiosRequestConfig } from 'axios';
|
|
2
1
|
export type AuthStrategyManagerStrategies = Record<string, Strategy>;
|
|
3
2
|
export type Strategy = {
|
|
4
3
|
name: string;
|
|
@@ -6,17 +5,18 @@ export type Strategy = {
|
|
|
6
5
|
isAuthenticated?: boolean;
|
|
7
6
|
startUrl?: string;
|
|
8
7
|
signInUrl?: string;
|
|
9
|
-
|
|
10
|
-
signIn: <
|
|
11
|
-
signUp: <
|
|
8
|
+
checkAuth: () => Promise<boolean>;
|
|
9
|
+
signIn: <T = unknown, D = undefined>(config?: D) => Promise<T>;
|
|
10
|
+
signUp: <T = unknown, D = undefined>(config?: D) => Promise<T>;
|
|
12
11
|
signOut: () => Promise<void>;
|
|
13
12
|
refreshToken: <T>(args?: T) => Promise<void>;
|
|
13
|
+
clear?: () => void;
|
|
14
14
|
};
|
|
15
15
|
export type AuthStrategyManagerInterface = {
|
|
16
16
|
strategiesCount: number;
|
|
17
17
|
strategy: Strategy;
|
|
18
18
|
startUrl: string | undefined;
|
|
19
|
-
|
|
19
|
+
checkAuth: () => Promise<boolean>;
|
|
20
20
|
setStrategies: (strategies: Strategy[]) => Promise<void>;
|
|
21
21
|
use: (strategyName: string) => void;
|
|
22
22
|
clear: () => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AxiosInstance
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
2
|
import { Strategy } from '@auth-strategy-manager/core';
|
|
3
3
|
import { Config, UrlName } from './types';
|
|
4
4
|
export declare class RestStrategy implements Strategy {
|
|
@@ -16,12 +16,12 @@ export declare class RestStrategy implements Strategy {
|
|
|
16
16
|
get token(): string | undefined;
|
|
17
17
|
set token(token: string);
|
|
18
18
|
get isAuthenticated(): boolean;
|
|
19
|
-
|
|
20
|
-
signIn: <
|
|
21
|
-
signUp: <
|
|
19
|
+
checkAuth: () => Promise<boolean>;
|
|
20
|
+
signIn: <T = unknown, D = undefined>(config?: D | undefined) => Promise<T>;
|
|
21
|
+
signUp: <T = unknown, D = undefined>(config?: D | undefined) => Promise<T>;
|
|
22
22
|
signOut: () => Promise<void>;
|
|
23
23
|
refreshToken: () => Promise<void>;
|
|
24
|
+
clear: () => void;
|
|
24
25
|
private extractToken;
|
|
25
26
|
private setAuthParams;
|
|
26
|
-
private clearAuthData;
|
|
27
27
|
}
|
|
@@ -32,7 +32,7 @@ class RestStrategy {
|
|
|
32
32
|
constructor(config) {
|
|
33
33
|
var _a;
|
|
34
34
|
this.currentRefresh = null;
|
|
35
|
-
this.
|
|
35
|
+
this.checkAuth = () => __awaiter(this, void 0, void 0, function* () {
|
|
36
36
|
if (!this.token) {
|
|
37
37
|
return false;
|
|
38
38
|
}
|
|
@@ -54,7 +54,11 @@ class RestStrategy {
|
|
|
54
54
|
throw new Error('Sign in URL is not defined');
|
|
55
55
|
}
|
|
56
56
|
const { url, method } = this.urls.signIn;
|
|
57
|
-
|
|
57
|
+
let axiosConfig = {};
|
|
58
|
+
if (config && typeof config === 'object') {
|
|
59
|
+
axiosConfig = config;
|
|
60
|
+
}
|
|
61
|
+
const response = yield this.axiosInstance(url, Object.assign(Object.assign({}, axiosConfig), { method }));
|
|
58
62
|
const token = this.extractToken(response, url);
|
|
59
63
|
if (token) {
|
|
60
64
|
this.setAuthParams(token);
|
|
@@ -66,7 +70,11 @@ class RestStrategy {
|
|
|
66
70
|
throw new Error('Sign up URL is not defined');
|
|
67
71
|
}
|
|
68
72
|
const { url, method } = this.urls.signUp;
|
|
69
|
-
|
|
73
|
+
let axiosConfig = {};
|
|
74
|
+
if (config && typeof config === 'object') {
|
|
75
|
+
axiosConfig = config;
|
|
76
|
+
}
|
|
77
|
+
const response = yield this.axiosInstance(url, Object.assign(Object.assign({}, axiosConfig), { method }));
|
|
70
78
|
const token = this.extractToken(response, url);
|
|
71
79
|
if (token) {
|
|
72
80
|
this.setAuthParams(token);
|
|
@@ -79,11 +87,11 @@ class RestStrategy {
|
|
|
79
87
|
}
|
|
80
88
|
const { url, method } = this.urls.signOut;
|
|
81
89
|
if (!url) {
|
|
82
|
-
this.
|
|
90
|
+
this.clear();
|
|
83
91
|
return;
|
|
84
92
|
}
|
|
85
93
|
yield this.axiosInstance(url, { method });
|
|
86
|
-
this.
|
|
94
|
+
this.clear();
|
|
87
95
|
});
|
|
88
96
|
this.refreshToken = () => __awaiter(this, void 0, void 0, function* () {
|
|
89
97
|
if (!this.urls.refresh) {
|
|
@@ -108,6 +116,10 @@ class RestStrategy {
|
|
|
108
116
|
resolver();
|
|
109
117
|
this.currentRefresh = null;
|
|
110
118
|
});
|
|
119
|
+
this.clear = () => {
|
|
120
|
+
window.sessionStorage.clear();
|
|
121
|
+
this.helper.reset();
|
|
122
|
+
};
|
|
111
123
|
this.extractToken = (response, url) => {
|
|
112
124
|
if (typeof response === 'string') {
|
|
113
125
|
return response;
|
|
@@ -119,10 +131,6 @@ class RestStrategy {
|
|
|
119
131
|
this.helper.activeStrategyName = this.name;
|
|
120
132
|
this.helper.isAuthenticated = true;
|
|
121
133
|
};
|
|
122
|
-
this.clearAuthData = () => {
|
|
123
|
-
window.sessionStorage.clear();
|
|
124
|
-
this.helper.reset();
|
|
125
|
-
};
|
|
126
134
|
const { name, tokenKey, getToken, signInUrl: loginUrl } = config, urls = __rest(config, ["name", "tokenKey", "getToken", "signInUrl"]);
|
|
127
135
|
this.helper = new core_1.StrategyHelper();
|
|
128
136
|
this.name = name || DEFAULT_NAME;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest-strategy.js","sourceRoot":"","sources":["../../../src/rest-strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAiE;AACjE,sDAAuE;AAGvE,MAAM,YAAY,GAAG,MAAM,CAAC;AAC5B,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEnC,MAAa,YAAY;IAWvB,YAAY,MAAc;;QAFlB,mBAAc,GAAyB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"rest-strategy.js","sourceRoot":"","sources":["../../../src/rest-strategy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@auth-strategy-manager/rest",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "REST API strategy for auth-strategy-manager",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -39,4 +39,4 @@
|
|
|
39
39
|
"url": "https://github.com/azarov-serge/auth-strategy-manager/issues"
|
|
40
40
|
},
|
|
41
41
|
"homepage": "https://github.com/azarov-serge/auth-strategy-manager#readme"
|
|
42
|
-
}
|
|
42
|
+
}
|