@emilgroup/auth-sdk 1.13.1-beta.1 → 1.14.1-beta.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 CHANGED
@@ -17,11 +17,11 @@ Although this package can be used in both TypeScript and JavaScript, it is inten
17
17
  Navigate to the folder of your consuming project and run one of the following commands:
18
18
 
19
19
  ```
20
- npm install @emilgroup/auth-sdk@1.13.1-beta.1 --save
20
+ npm install @emilgroup/auth-sdk@1.14.1-beta.0 --save
21
21
  ```
22
22
  or
23
23
  ```
24
- yarn add @emilgroup/auth-sdk@1.13.1-beta.1
24
+ yarn add @emilgroup/auth-sdk@1.14.1-beta.0
25
25
  ```
26
26
 
27
27
  And then you can import ``.
package/base.ts CHANGED
@@ -34,7 +34,7 @@ export const COLLECTION_FORMATS = {
34
34
 
35
35
  export interface LoginClass {
36
36
  accessToken: string;
37
- permissions: Array<string>;
37
+ permissions: string;
38
38
  }
39
39
 
40
40
  export enum Environment {
@@ -64,6 +64,7 @@ export interface RequestArgs {
64
64
  interface TokenData {
65
65
  accessToken?: string;
66
66
  username?: string;
67
+ permissions?: string;
67
68
  }
68
69
 
69
70
  const NETWORK_ERROR_MESSAGE = "Network Error";
@@ -77,7 +78,6 @@ const TOKEN_DATA = 'APP_TOKEN';
77
78
  export class BaseAPI {
78
79
  protected configuration: Configuration | undefined;
79
80
  private tokenData?: TokenData;
80
- private permissions: Array<string> = [];
81
81
 
82
82
  constructor(configuration?: Configuration,
83
83
  protected basePath: string = BASE_PATH,
@@ -111,7 +111,11 @@ export class BaseAPI {
111
111
  }
112
112
 
113
113
  getPermissions(): Array<string> {
114
- return this.permissions;
114
+ if (!this.tokenData?.permissions) {
115
+ return [];
116
+ }
117
+
118
+ return this.tokenData.permissions.split(',');
115
119
  }
116
120
 
117
121
  async authorize(username: string, password: string): Promise<void> {
@@ -134,7 +138,7 @@ export class BaseAPI {
134
138
  this.configuration.accessToken = `Bearer ${accessToken}`;
135
139
  this.tokenData.username = username;
136
140
  this.tokenData.accessToken = accessToken;
137
- this.permissions = permissions;
141
+ this.tokenData.permissions = permissions;
138
142
 
139
143
  this.storeTokenData({
140
144
  ...this.tokenData
@@ -148,6 +152,16 @@ export class BaseAPI {
148
152
  throw new Error('Failed to refresh token.');
149
153
  }
150
154
 
155
+ const refreshTokenAxios = globalAxios.create()
156
+ refreshTokenAxios.interceptors.response.use(response => {
157
+ const { permissions } = response.data;
158
+
159
+ this.tokenData.permissions = permissions;
160
+ this.storeTokenData(this.tokenData);
161
+
162
+ return response;
163
+ })
164
+
151
165
  const options: AxiosRequestConfig = {
152
166
  method: 'POST',
153
167
  url: `${this.configuration.basePath}/authservice/v1/refresh-token`,
@@ -158,8 +172,7 @@ export class BaseAPI {
158
172
  withCredentials: true,
159
173
  };
160
174
 
161
- const response = await globalAxios.request<LoginClass>(options);
162
-
175
+ const response = await refreshTokenAxios.request<LoginClass>(options);
163
176
  return response.data;
164
177
  }
165
178
 
@@ -196,7 +209,7 @@ export class BaseAPI {
196
209
  try {
197
210
  const { accessToken: tokenString, permissions } = await this.refreshTokenInternal();
198
211
  const accessToken = `Bearer ${tokenString}`;
199
- this.permissions = permissions;
212
+ this.tokenData.permissions = permissions;
200
213
 
201
214
  delete originalConfig.headers['Authorization']
202
215
 
@@ -223,7 +236,7 @@ export class BaseAPI {
223
236
  try {
224
237
  const { accessToken: tokenString, permissions } = await this.refreshTokenInternal();
225
238
  const accessToken = `Bearer ${tokenString}`;
226
- this.permissions = permissions;
239
+ this.tokenData.permissions = permissions;
227
240
 
228
241
  _retry = true;
229
242
  originalConfig.headers['Authorization'] = accessToken;
package/dist/base.d.ts CHANGED
@@ -24,7 +24,7 @@ export declare const COLLECTION_FORMATS: {
24
24
  };
25
25
  export interface LoginClass {
26
26
  accessToken: string;
27
- permissions: Array<string>;
27
+ permissions: string;
28
28
  }
29
29
  export declare enum Environment {
30
30
  Production = "https://apiv2.emil.de",
@@ -52,7 +52,6 @@ export declare class BaseAPI {
52
52
  protected axios: AxiosInstance;
53
53
  protected configuration: Configuration | undefined;
54
54
  private tokenData?;
55
- private permissions;
56
55
  constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance);
57
56
  selectEnvironment(env: Environment): void;
58
57
  selectBasePath(path: string): void;
package/dist/base.js CHANGED
@@ -121,7 +121,6 @@ var BaseAPI = /** @class */ (function () {
121
121
  if (axios === void 0) { axios = axios_1.default; }
122
122
  this.basePath = basePath;
123
123
  this.axios = axios;
124
- this.permissions = [];
125
124
  this.loadTokenData();
126
125
  if (configuration) {
127
126
  this.configuration = configuration;
@@ -145,7 +144,11 @@ var BaseAPI = /** @class */ (function () {
145
144
  this.configuration.basePath = path;
146
145
  };
147
146
  BaseAPI.prototype.getPermissions = function () {
148
- return this.permissions;
147
+ var _a;
148
+ if (!((_a = this.tokenData) === null || _a === void 0 ? void 0 : _a.permissions)) {
149
+ return [];
150
+ }
151
+ return this.tokenData.permissions.split(',');
149
152
  };
150
153
  BaseAPI.prototype.authorize = function (username, password) {
151
154
  return __awaiter(this, void 0, void 0, function () {
@@ -171,7 +174,7 @@ var BaseAPI = /** @class */ (function () {
171
174
  this.configuration.accessToken = "Bearer ".concat(accessToken);
172
175
  this.tokenData.username = username;
173
176
  this.tokenData.accessToken = accessToken;
174
- this.permissions = permissions;
177
+ this.tokenData.permissions = permissions;
175
178
  this.storeTokenData(__assign({}, this.tokenData));
176
179
  return [2 /*return*/];
177
180
  }
@@ -180,7 +183,8 @@ var BaseAPI = /** @class */ (function () {
180
183
  };
181
184
  BaseAPI.prototype.refreshTokenInternal = function () {
182
185
  return __awaiter(this, void 0, void 0, function () {
183
- var username, options, response;
186
+ var username, refreshTokenAxios, options, response;
187
+ var _this = this;
184
188
  return __generator(this, function (_a) {
185
189
  switch (_a.label) {
186
190
  case 0:
@@ -188,6 +192,13 @@ var BaseAPI = /** @class */ (function () {
188
192
  if (!username) {
189
193
  throw new Error('Failed to refresh token.');
190
194
  }
195
+ refreshTokenAxios = axios_1.default.create();
196
+ refreshTokenAxios.interceptors.response.use(function (response) {
197
+ var permissions = response.data.permissions;
198
+ _this.tokenData.permissions = permissions;
199
+ _this.storeTokenData(_this.tokenData);
200
+ return response;
201
+ });
191
202
  options = {
192
203
  method: 'POST',
193
204
  url: "".concat(this.configuration.basePath, "/authservice/v1/refresh-token"),
@@ -197,7 +208,7 @@ var BaseAPI = /** @class */ (function () {
197
208
  data: { username: username },
198
209
  withCredentials: true,
199
210
  };
200
- return [4 /*yield*/, axios_1.default.request(options)];
211
+ return [4 /*yield*/, refreshTokenAxios.request(options)];
201
212
  case 1:
202
213
  response = _a.sent();
203
214
  return [2 /*return*/, response.data];
@@ -242,7 +253,7 @@ var BaseAPI = /** @class */ (function () {
242
253
  case 2:
243
254
  _a = _c.sent(), tokenString = _a.accessToken, permissions = _a.permissions;
244
255
  accessToken = "Bearer ".concat(tokenString);
245
- this.permissions = permissions;
256
+ this.tokenData.permissions = permissions;
246
257
  delete originalConfig.headers['Authorization'];
247
258
  originalConfig.headers['Authorization'] = accessToken;
248
259
  this.configuration.accessToken = accessToken;
@@ -268,7 +279,7 @@ var BaseAPI = /** @class */ (function () {
268
279
  case 7:
269
280
  _b = _c.sent(), tokenString = _b.accessToken, permissions = _b.permissions;
270
281
  accessToken = "Bearer ".concat(tokenString);
271
- this.permissions = permissions;
282
+ this.tokenData.permissions = permissions;
272
283
  _retry = true;
273
284
  originalConfig.headers['Authorization'] = accessToken;
274
285
  this.configuration.accessToken = accessToken;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emilgroup/auth-sdk",
3
- "version": "1.13.1-beta.1",
3
+ "version": "1.14.1-beta.0",
4
4
  "description": "OpenAPI client for @emilgroup/auth-sdk",
5
5
  "author": "OpenAPI-Generator Contributors",
6
6
  "keywords": [