react-token-manager 1.1.2 → 1.1.3

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/dist/index.js CHANGED
@@ -109,8 +109,10 @@ var TokenManager = class {
109
109
  decode(token) {
110
110
  if (!token) return null;
111
111
  try {
112
- return jwtDecode(token);
113
- } catch {
112
+ const cleanToken = token.trim().replace(/^"|"$/g, "");
113
+ return jwtDecode(cleanToken);
114
+ } catch (err) {
115
+ console.error("JWT decode error:", err, token);
114
116
  return null;
115
117
  }
116
118
  }
@@ -119,21 +121,16 @@ var TokenManager = class {
119
121
  */
120
122
  isExpired(token) {
121
123
  const tokenToCheck = token != null ? token : this.getOne("access_token");
122
- console.log("tokenToCheck", tokenToCheck);
124
+ console.log("tokenToCheck:", tokenToCheck);
123
125
  if (!tokenToCheck) return true;
124
- try {
125
- const decoded = this.decode(tokenToCheck);
126
- console.log("decoded first", decoded);
127
- if (!decoded || !decoded.exp) return true;
128
- console.log("decoded", decoded);
129
- console.log("decoded exp", decoded.exp);
130
- const now = Date.now();
131
- const expTime = decoded.exp * 1e3;
132
- return now >= expTime;
133
- } catch {
134
- console.log("skipped");
135
- return true;
136
- }
126
+ const decoded = this.decode(tokenToCheck);
127
+ console.log("decoded:", decoded);
128
+ if (!decoded || !decoded.exp) return true;
129
+ const now = Date.now();
130
+ const expTime = decoded.exp * 1e3;
131
+ const isExpired = now >= expTime;
132
+ console.log("Token expires at:", new Date(expTime), "isExpired:", isExpired);
133
+ return isExpired;
137
134
  }
138
135
  };
139
136
 
package/dist/index.mjs CHANGED
@@ -71,8 +71,10 @@ var TokenManager = class {
71
71
  decode(token) {
72
72
  if (!token) return null;
73
73
  try {
74
- return jwtDecode(token);
75
- } catch {
74
+ const cleanToken = token.trim().replace(/^"|"$/g, "");
75
+ return jwtDecode(cleanToken);
76
+ } catch (err) {
77
+ console.error("JWT decode error:", err, token);
76
78
  return null;
77
79
  }
78
80
  }
@@ -81,21 +83,16 @@ var TokenManager = class {
81
83
  */
82
84
  isExpired(token) {
83
85
  const tokenToCheck = token != null ? token : this.getOne("access_token");
84
- console.log("tokenToCheck", tokenToCheck);
86
+ console.log("tokenToCheck:", tokenToCheck);
85
87
  if (!tokenToCheck) return true;
86
- try {
87
- const decoded = this.decode(tokenToCheck);
88
- console.log("decoded first", decoded);
89
- if (!decoded || !decoded.exp) return true;
90
- console.log("decoded", decoded);
91
- console.log("decoded exp", decoded.exp);
92
- const now = Date.now();
93
- const expTime = decoded.exp * 1e3;
94
- return now >= expTime;
95
- } catch {
96
- console.log("skipped");
97
- return true;
98
- }
88
+ const decoded = this.decode(tokenToCheck);
89
+ console.log("decoded:", decoded);
90
+ if (!decoded || !decoded.exp) return true;
91
+ const now = Date.now();
92
+ const expTime = decoded.exp * 1e3;
93
+ const isExpired = now >= expTime;
94
+ console.log("Token expires at:", new Date(expTime), "isExpired:", isExpired);
95
+ return isExpired;
99
96
  }
100
97
  };
101
98
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-token-manager",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "A simple React library to manage JWT tokens",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
package/src/core.ts CHANGED
@@ -95,9 +95,13 @@ export class TokenManager {
95
95
  /** Decode token */
96
96
  decode<T = unknown>(token: string): T | null {
97
97
  if (!token) return null
98
+
98
99
  try {
99
- return jwtDecode<T>(token)
100
- } catch {
100
+ // Remove quotes and trim spaces
101
+ const cleanToken = token.trim().replace(/^"|"$/g, '')
102
+ return jwtDecode<T>(cleanToken)
103
+ } catch (err) {
104
+ console.error('JWT decode error:', err, token)
101
105
  return null
102
106
  }
103
107
  }
@@ -107,34 +111,24 @@ export class TokenManager {
107
111
  */
108
112
  isExpired(token?: string): boolean {
109
113
  // Use provided token, fallback to stored 'access_token'
110
- const tokenToCheck = token ?? this.getOne('access_token');
114
+ const tokenToCheck = token ?? this.getOne('access_token')
115
+
116
+ console.log('tokenToCheck:', tokenToCheck)
111
117
 
112
- console.log('tokenToCheck', tokenToCheck);
113
-
114
- // If no token, consider it expired
115
118
  if (!tokenToCheck) return true
116
-
117
- try {
118
- // Decode JWT safely
119
- const decoded = this.decode<JwtPayload>(tokenToCheck)
120
-
121
- console.log('decoded first', decoded);
122
-
123
- // If decoding fails or exp is missing, token is expired
124
- if (!decoded || !decoded.exp) return true
125
-
126
- console.log('decoded', decoded);
127
- console.log('decoded exp', decoded.exp);
128
-
129
-
130
- // Compare current time with token expiry
131
- const now = Date.now()
132
- const expTime = decoded.exp * 1000 // exp is in seconds
133
- return now >= expTime
134
- } catch {
135
- console.log('skipped');
136
- // Any decoding error means token is invalid/expired
137
- return true
138
- }
119
+
120
+ const decoded = this.decode<JwtPayload>(tokenToCheck)
121
+ console.log('decoded:', decoded)
122
+
123
+ // If decoding fails or exp is missing, consider expired
124
+ if (!decoded || !decoded.exp) return true
125
+
126
+ const now = Date.now()
127
+ const expTime = decoded.exp * 1000
128
+ const isExpired = now >= expTime
129
+
130
+ console.log('Token expires at:', new Date(expTime), 'isExpired:', isExpired)
131
+ return isExpired
139
132
  }
133
+
140
134
  }