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 +13 -16
- package/dist/index.mjs +13 -16
- package/package.json +1 -1
- package/src/core.ts +23 -29
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
|
-
|
|
113
|
-
|
|
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
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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
|
-
|
|
75
|
-
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
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
|
-
|
|
100
|
-
|
|
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
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
}
|