@oxyhq/services 5.10.1 → 5.10.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.
@@ -14,10 +14,36 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
14
14
  * This class provides the core HTTP client setup, token management, and error handling.
15
15
  * Specific functionality is delegated to focused service modules.
16
16
  */
17
- class OxyServices {
17
+ // Centralized token store
18
+ class TokenStore {
18
19
  accessToken = null;
19
20
  refreshToken = null;
20
-
21
+ constructor() {}
22
+ static getInstance() {
23
+ if (!TokenStore.instance) {
24
+ TokenStore.instance = new TokenStore();
25
+ }
26
+ return TokenStore.instance;
27
+ }
28
+ setTokens(accessToken, refreshToken = '') {
29
+ this.accessToken = accessToken;
30
+ this.refreshToken = refreshToken;
31
+ }
32
+ getAccessToken() {
33
+ return this.accessToken;
34
+ }
35
+ getRefreshToken() {
36
+ return this.refreshToken;
37
+ }
38
+ clearTokens() {
39
+ this.accessToken = null;
40
+ this.refreshToken = null;
41
+ }
42
+ hasAccessToken() {
43
+ return !!this.accessToken;
44
+ }
45
+ }
46
+ class OxyServices {
21
47
  /**
22
48
  * Creates a new instance of the OxyServices client
23
49
  * @param config - Configuration for the client
@@ -27,6 +53,7 @@ class OxyServices {
27
53
  baseURL: config.baseURL,
28
54
  timeout: 10000 // 10 second timeout
29
55
  });
56
+ this.tokenStore = TokenStore.getInstance();
30
57
  this.setupInterceptors();
31
58
  }
32
59
 
@@ -36,13 +63,15 @@ class OxyServices {
36
63
  setupInterceptors() {
37
64
  // Request interceptor for adding auth header and handling token refresh
38
65
  this.client.interceptors.request.use(async req => {
39
- if (!this.accessToken) {
66
+ if (!this.tokenStore.hasAccessToken()) {
40
67
  return req;
41
68
  }
42
69
 
43
70
  // Check if token is expired and refresh if needed
44
71
  try {
45
- const decoded = (0, _jwtDecode.jwtDecode)(this.accessToken);
72
+ const accessToken = this.tokenStore.getAccessToken();
73
+ if (!accessToken) return req;
74
+ const decoded = (0, _jwtDecode.jwtDecode)(accessToken);
46
75
  const currentTime = Math.floor(Date.now() / 1000);
47
76
 
48
77
  // If token expires in less than 60 seconds, refresh it
@@ -51,7 +80,7 @@ class OxyServices {
51
80
  if (decoded.sessionId) {
52
81
  try {
53
82
  const res = await this.client.get(`/api/session/token/${decoded.sessionId}`);
54
- this.accessToken = res.data.accessToken;
83
+ this.tokenStore.setTokens(res.data.accessToken);
55
84
  } catch (refreshError) {
56
85
  // If refresh fails, clear tokens
57
86
  this.clearTokens();
@@ -60,7 +89,10 @@ class OxyServices {
60
89
  }
61
90
 
62
91
  // Add authorization header
63
- req.headers.Authorization = `Bearer ${this.accessToken}`;
92
+ const currentToken = this.tokenStore.getAccessToken();
93
+ if (currentToken) {
94
+ req.headers.Authorization = `Bearer ${currentToken}`;
95
+ }
64
96
  } catch (error) {
65
97
  // If token is invalid, clear it
66
98
  this.clearTokens();
@@ -80,27 +112,26 @@ class OxyServices {
80
112
  * Set authentication tokens
81
113
  */
82
114
  setTokens(accessToken, refreshToken = '') {
83
- this.accessToken = accessToken;
84
- this.refreshToken = refreshToken;
115
+ this.tokenStore.setTokens(accessToken, refreshToken);
85
116
  }
86
117
 
87
118
  /**
88
119
  * Clear stored authentication tokens
89
120
  */
90
121
  clearTokens() {
91
- this.accessToken = null;
92
- this.refreshToken = null;
122
+ this.tokenStore.clearTokens();
93
123
  }
94
124
 
95
125
  /**
96
126
  * Get the current user ID from the access token
97
127
  */
98
128
  getCurrentUserId() {
99
- if (!this.accessToken) {
129
+ const accessToken = this.tokenStore.getAccessToken();
130
+ if (!accessToken) {
100
131
  return null;
101
132
  }
102
133
  try {
103
- const decoded = (0, _jwtDecode.jwtDecode)(this.accessToken);
134
+ const decoded = (0, _jwtDecode.jwtDecode)(accessToken);
104
135
  return decoded.userId || decoded.id || null;
105
136
  } catch (error) {
106
137
  return null;
@@ -111,7 +142,7 @@ class OxyServices {
111
142
  * Check if the client has a valid access token
112
143
  */
113
144
  hasAccessToken() {
114
- return !!this.accessToken;
145
+ return this.tokenStore.hasAccessToken();
115
146
  }
116
147
 
117
148
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","_jwtDecode","_errorUtils","e","__esModule","default","OxyServices","accessToken","refreshToken","constructor","config","client","axios","create","baseURL","timeout","setupInterceptors","interceptors","request","use","req","decoded","jwtDecode","currentTime","Math","floor","Date","now","exp","sessionId","res","get","data","refreshError","clearTokens","headers","Authorization","error","getBaseURL","defaults","setTokens","getCurrentUserId","userId","id","hasAccessToken","validate","valid","getClient","handleError","handleHttpError","healthCheck","auth","options","debug","onError","loadUser","session","next","authHeader","token","startsWith","substring","console","log","method","path","message","code","status","json","decodeError","user","apiError","exports"],"sourceRoot":"../../../src","sources":["core/OxyServices.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_axios","_interopRequireDefault","require","_jwtDecode","_errorUtils","e","__esModule","default","TokenStore","accessToken","refreshToken","constructor","getInstance","instance","setTokens","getAccessToken","getRefreshToken","clearTokens","hasAccessToken","OxyServices","config","client","axios","create","baseURL","timeout","tokenStore","setupInterceptors","interceptors","request","use","req","decoded","jwtDecode","currentTime","Math","floor","Date","now","exp","sessionId","res","get","data","refreshError","currentToken","headers","Authorization","error","getBaseURL","defaults","getCurrentUserId","userId","id","validate","valid","getClient","handleError","handleHttpError","healthCheck","auth","options","debug","onError","loadUser","session","next","authHeader","token","startsWith","substring","console","log","method","path","message","code","status","json","decodeError","user","apiError","exports"],"sourceRoot":"../../../src","sources":["core/OxyServices.ts"],"mappings":"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","ignoreList":[]}
@@ -9,10 +9,36 @@ import { handleHttpError } from '../utils/errorUtils';
9
9
  * This class provides the core HTTP client setup, token management, and error handling.
10
10
  * Specific functionality is delegated to focused service modules.
11
11
  */
12
- export class OxyServices {
12
+ // Centralized token store
13
+ class TokenStore {
13
14
  accessToken = null;
14
15
  refreshToken = null;
15
-
16
+ constructor() {}
17
+ static getInstance() {
18
+ if (!TokenStore.instance) {
19
+ TokenStore.instance = new TokenStore();
20
+ }
21
+ return TokenStore.instance;
22
+ }
23
+ setTokens(accessToken, refreshToken = '') {
24
+ this.accessToken = accessToken;
25
+ this.refreshToken = refreshToken;
26
+ }
27
+ getAccessToken() {
28
+ return this.accessToken;
29
+ }
30
+ getRefreshToken() {
31
+ return this.refreshToken;
32
+ }
33
+ clearTokens() {
34
+ this.accessToken = null;
35
+ this.refreshToken = null;
36
+ }
37
+ hasAccessToken() {
38
+ return !!this.accessToken;
39
+ }
40
+ }
41
+ export class OxyServices {
16
42
  /**
17
43
  * Creates a new instance of the OxyServices client
18
44
  * @param config - Configuration for the client
@@ -22,6 +48,7 @@ export class OxyServices {
22
48
  baseURL: config.baseURL,
23
49
  timeout: 10000 // 10 second timeout
24
50
  });
51
+ this.tokenStore = TokenStore.getInstance();
25
52
  this.setupInterceptors();
26
53
  }
27
54
 
@@ -31,13 +58,15 @@ export class OxyServices {
31
58
  setupInterceptors() {
32
59
  // Request interceptor for adding auth header and handling token refresh
33
60
  this.client.interceptors.request.use(async req => {
34
- if (!this.accessToken) {
61
+ if (!this.tokenStore.hasAccessToken()) {
35
62
  return req;
36
63
  }
37
64
 
38
65
  // Check if token is expired and refresh if needed
39
66
  try {
40
- const decoded = jwtDecode(this.accessToken);
67
+ const accessToken = this.tokenStore.getAccessToken();
68
+ if (!accessToken) return req;
69
+ const decoded = jwtDecode(accessToken);
41
70
  const currentTime = Math.floor(Date.now() / 1000);
42
71
 
43
72
  // If token expires in less than 60 seconds, refresh it
@@ -46,7 +75,7 @@ export class OxyServices {
46
75
  if (decoded.sessionId) {
47
76
  try {
48
77
  const res = await this.client.get(`/api/session/token/${decoded.sessionId}`);
49
- this.accessToken = res.data.accessToken;
78
+ this.tokenStore.setTokens(res.data.accessToken);
50
79
  } catch (refreshError) {
51
80
  // If refresh fails, clear tokens
52
81
  this.clearTokens();
@@ -55,7 +84,10 @@ export class OxyServices {
55
84
  }
56
85
 
57
86
  // Add authorization header
58
- req.headers.Authorization = `Bearer ${this.accessToken}`;
87
+ const currentToken = this.tokenStore.getAccessToken();
88
+ if (currentToken) {
89
+ req.headers.Authorization = `Bearer ${currentToken}`;
90
+ }
59
91
  } catch (error) {
60
92
  // If token is invalid, clear it
61
93
  this.clearTokens();
@@ -75,27 +107,26 @@ export class OxyServices {
75
107
  * Set authentication tokens
76
108
  */
77
109
  setTokens(accessToken, refreshToken = '') {
78
- this.accessToken = accessToken;
79
- this.refreshToken = refreshToken;
110
+ this.tokenStore.setTokens(accessToken, refreshToken);
80
111
  }
81
112
 
82
113
  /**
83
114
  * Clear stored authentication tokens
84
115
  */
85
116
  clearTokens() {
86
- this.accessToken = null;
87
- this.refreshToken = null;
117
+ this.tokenStore.clearTokens();
88
118
  }
89
119
 
90
120
  /**
91
121
  * Get the current user ID from the access token
92
122
  */
93
123
  getCurrentUserId() {
94
- if (!this.accessToken) {
124
+ const accessToken = this.tokenStore.getAccessToken();
125
+ if (!accessToken) {
95
126
  return null;
96
127
  }
97
128
  try {
98
- const decoded = jwtDecode(this.accessToken);
129
+ const decoded = jwtDecode(accessToken);
99
130
  return decoded.userId || decoded.id || null;
100
131
  } catch (error) {
101
132
  return null;
@@ -106,7 +137,7 @@ export class OxyServices {
106
137
  * Check if the client has a valid access token
107
138
  */
108
139
  hasAccessToken() {
109
- return !!this.accessToken;
140
+ return this.tokenStore.hasAccessToken();
110
141
  }
111
142
 
112
143
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["axios","jwtDecode","handleHttpError","OxyServices","accessToken","refreshToken","constructor","config","client","create","baseURL","timeout","setupInterceptors","interceptors","request","use","req","decoded","currentTime","Math","floor","Date","now","exp","sessionId","res","get","data","refreshError","clearTokens","headers","Authorization","error","getBaseURL","defaults","setTokens","getCurrentUserId","userId","id","hasAccessToken","validate","valid","getClient","handleError","healthCheck","auth","options","debug","onError","loadUser","session","next","authHeader","token","startsWith","substring","console","log","method","path","message","code","status","json","decodeError","user","apiError"],"sourceRoot":"../../../src","sources":["core/OxyServices.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["axios","jwtDecode","handleHttpError","TokenStore","accessToken","refreshToken","constructor","getInstance","instance","setTokens","getAccessToken","getRefreshToken","clearTokens","hasAccessToken","OxyServices","config","client","create","baseURL","timeout","tokenStore","setupInterceptors","interceptors","request","use","req","decoded","currentTime","Math","floor","Date","now","exp","sessionId","res","get","data","refreshError","currentToken","headers","Authorization","error","getBaseURL","defaults","getCurrentUserId","userId","id","validate","valid","getClient","handleError","healthCheck","auth","options","debug","onError","loadUser","session","next","authHeader","token","startsWith","substring","console","log","method","path","message","code","status","json","decodeError","user","apiError"],"sourceRoot":"../../../src","sources":["core/OxyServices.ts"],"mappings":"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","ignoreList":[]}
@@ -1,15 +1,8 @@
1
1
  import { AxiosInstance } from 'axios';
2
2
  import { OxyConfig, ApiError } from '../models/interfaces';
3
- /**
4
- * OxyServices - Base client library for interacting with the Oxy API
5
- *
6
- * This class provides the core HTTP client setup, token management, and error handling.
7
- * Specific functionality is delegated to focused service modules.
8
- */
9
3
  export declare class OxyServices {
10
4
  protected client: AxiosInstance;
11
- private accessToken;
12
- private refreshToken;
5
+ private tokenStore;
13
6
  /**
14
7
  * Creates a new instance of the OxyServices client
15
8
  * @param config - Configuration for the client
@@ -1 +1 @@
1
- {"version":3,"file":"OxyServices.d.ts","sourceRoot":"","sources":["../../../src/core/OxyServices.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAA8B,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAQ,MAAM,sBAAsB,CAAC;AAUjE;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IAChC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAE3C;;;OAGG;gBACS,MAAM,EAAE,SAAS;IAS7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqCzB;;OAEG;IACI,UAAU,IAAI,MAAM;IAI3B;;OAEG;IACI,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,IAAI;IAKtE;;OAEG;IACI,WAAW,IAAI,IAAI;IAK1B;;OAEG;IACI,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAaxC;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAalC;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,aAAa;IAIpC;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,QAAQ;IAI3C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAC;IASF;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,IAAI,CAAC,OAAO,GAAE;QACZ,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC;QACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;KACd,IAII,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG;CAoGxC"}
1
+ {"version":3,"file":"OxyServices.d.ts","sourceRoot":"","sources":["../../../src/core/OxyServices.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAA8B,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAQ,MAAM,sBAAsB,CAAC;AAsDjE,qBAAa,WAAW;IACtB,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IAChC,OAAO,CAAC,UAAU,CAAa;IAE/B;;;OAGG;gBACS,MAAM,EAAE,SAAS;IAU7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2CzB;;OAEG;IACI,UAAU,IAAI,MAAM;IAI3B;;OAEG;IACI,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,IAAI;IAItE;;OAEG;IACI,WAAW,IAAI,IAAI;IAI1B;;OAEG;IACI,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAcxC;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAalC;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,aAAa;IAIpC;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,QAAQ;IAI3C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAC;IASF;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,IAAI,CAAC,OAAO,GAAE;QACZ,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC;QACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;KACd,IAII,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG;CAoGxC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "5.10.1",
3
+ "version": "5.10.2",
4
4
  "description": "Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -16,11 +16,48 @@ interface JwtPayload {
16
16
  * This class provides the core HTTP client setup, token management, and error handling.
17
17
  * Specific functionality is delegated to focused service modules.
18
18
  */
19
- export class OxyServices {
20
- protected client: AxiosInstance;
19
+ // Centralized token store
20
+ class TokenStore {
21
+ private static instance: TokenStore;
21
22
  private accessToken: string | null = null;
22
23
  private refreshToken: string | null = null;
23
24
 
25
+ private constructor() {}
26
+
27
+ static getInstance(): TokenStore {
28
+ if (!TokenStore.instance) {
29
+ TokenStore.instance = new TokenStore();
30
+ }
31
+ return TokenStore.instance;
32
+ }
33
+
34
+ setTokens(accessToken: string, refreshToken: string = ''): void {
35
+ this.accessToken = accessToken;
36
+ this.refreshToken = refreshToken;
37
+ }
38
+
39
+ getAccessToken(): string | null {
40
+ return this.accessToken;
41
+ }
42
+
43
+ getRefreshToken(): string | null {
44
+ return this.refreshToken;
45
+ }
46
+
47
+ clearTokens(): void {
48
+ this.accessToken = null;
49
+ this.refreshToken = null;
50
+ }
51
+
52
+ hasAccessToken(): boolean {
53
+ return !!this.accessToken;
54
+ }
55
+ }
56
+
57
+ export class OxyServices {
58
+ protected client: AxiosInstance;
59
+ private tokenStore: TokenStore;
60
+
24
61
  /**
25
62
  * Creates a new instance of the OxyServices client
26
63
  * @param config - Configuration for the client
@@ -31,6 +68,7 @@ export class OxyServices {
31
68
  timeout: 10000 // 10 second timeout
32
69
  });
33
70
 
71
+ this.tokenStore = TokenStore.getInstance();
34
72
  this.setupInterceptors();
35
73
  }
36
74
 
@@ -40,13 +78,16 @@ export class OxyServices {
40
78
  private setupInterceptors(): void {
41
79
  // Request interceptor for adding auth header and handling token refresh
42
80
  this.client.interceptors.request.use(async (req: InternalAxiosRequestConfig) => {
43
- if (!this.accessToken) {
81
+ if (!this.tokenStore.hasAccessToken()) {
44
82
  return req;
45
83
  }
46
84
 
47
85
  // Check if token is expired and refresh if needed
48
86
  try {
49
- const decoded = jwtDecode<JwtPayload>(this.accessToken);
87
+ const accessToken = this.tokenStore.getAccessToken();
88
+ if (!accessToken) return req;
89
+
90
+ const decoded = jwtDecode<JwtPayload>(accessToken);
50
91
  const currentTime = Math.floor(Date.now() / 1000);
51
92
 
52
93
  // If token expires in less than 60 seconds, refresh it
@@ -55,7 +96,7 @@ export class OxyServices {
55
96
  if (decoded.sessionId) {
56
97
  try {
57
98
  const res = await this.client.get(`/api/session/token/${decoded.sessionId}`);
58
- this.accessToken = res.data.accessToken;
99
+ this.tokenStore.setTokens(res.data.accessToken);
59
100
  } catch (refreshError) {
60
101
  // If refresh fails, clear tokens
61
102
  this.clearTokens();
@@ -64,7 +105,10 @@ export class OxyServices {
64
105
  }
65
106
 
66
107
  // Add authorization header
67
- req.headers.Authorization = `Bearer ${this.accessToken}`;
108
+ const currentToken = this.tokenStore.getAccessToken();
109
+ if (currentToken) {
110
+ req.headers.Authorization = `Bearer ${currentToken}`;
111
+ }
68
112
  } catch (error) {
69
113
  // If token is invalid, clear it
70
114
  this.clearTokens();
@@ -85,28 +129,27 @@ export class OxyServices {
85
129
  * Set authentication tokens
86
130
  */
87
131
  public setTokens(accessToken: string, refreshToken: string = ''): void {
88
- this.accessToken = accessToken;
89
- this.refreshToken = refreshToken;
132
+ this.tokenStore.setTokens(accessToken, refreshToken);
90
133
  }
91
134
 
92
135
  /**
93
136
  * Clear stored authentication tokens
94
137
  */
95
138
  public clearTokens(): void {
96
- this.accessToken = null;
97
- this.refreshToken = null;
139
+ this.tokenStore.clearTokens();
98
140
  }
99
141
 
100
142
  /**
101
143
  * Get the current user ID from the access token
102
144
  */
103
145
  public getCurrentUserId(): string | null {
104
- if (!this.accessToken) {
146
+ const accessToken = this.tokenStore.getAccessToken();
147
+ if (!accessToken) {
105
148
  return null;
106
149
  }
107
150
 
108
151
  try {
109
- const decoded = jwtDecode<JwtPayload>(this.accessToken);
152
+ const decoded = jwtDecode<JwtPayload>(accessToken);
110
153
  return decoded.userId || decoded.id || null;
111
154
  } catch (error) {
112
155
  return null;
@@ -117,7 +160,7 @@ export class OxyServices {
117
160
  * Check if the client has a valid access token
118
161
  */
119
162
  private hasAccessToken(): boolean {
120
- return !!this.accessToken;
163
+ return this.tokenStore.hasAccessToken();
121
164
  }
122
165
 
123
166
  /**