@authu/react 0.1.27 → 1.0.15
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 +10 -0
- package/dist/AuthUProvider.d.ts.map +1 -1
- package/dist/AuthUProvider.js +8 -0
- package/dist/PrivateRoute.d.ts.map +1 -1
- package/dist/PrivateRoute.js +5 -0
- package/dist/pkce.js +9 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -164,6 +164,16 @@ pnpm publish --access public
|
|
|
164
164
|
|
|
165
165
|
The `--access public` flag is required for scoped packages.
|
|
166
166
|
|
|
167
|
+
## Changelog
|
|
168
|
+
|
|
169
|
+
### 1.0.10
|
|
170
|
+
|
|
171
|
+
- **Fix**: Changed PKCE storage from `sessionStorage` to `localStorage` to prevent state/code_verifier loss during cross-domain OAuth redirects
|
|
172
|
+
|
|
173
|
+
### 1.0.9
|
|
174
|
+
|
|
175
|
+
- Initial stable release
|
|
176
|
+
|
|
167
177
|
## License
|
|
168
178
|
|
|
169
179
|
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthUProvider.d.ts","sourceRoot":"","sources":["../src/AuthUProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAGlB,MAAM,YAAY,CAAC;AAgBpB,eAAO,MAAM,YAAY,mDAAgD,CAAC;AAO1E,UAAU,kBAAkB;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAID,wBAAgB,aAAa,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"AuthUProvider.d.ts","sourceRoot":"","sources":["../src/AuthUProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAGlB,MAAM,YAAY,CAAC;AAgBpB,eAAO,MAAM,YAAY,mDAAgD,CAAC;AAO1E,UAAU,kBAAkB;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAID,wBAAgB,aAAa,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAE,kBAAkB,2CA0UnE"}
|
package/dist/AuthUProvider.js
CHANGED
|
@@ -79,6 +79,7 @@ export function AuthUProvider({ config, children }) {
|
|
|
79
79
|
};
|
|
80
80
|
const login = useCallback(async () => {
|
|
81
81
|
const url = await getAuthorizationUrl();
|
|
82
|
+
console.log('[AuthU SDK] login() called, redirecting to:', url);
|
|
82
83
|
window.location.href = url;
|
|
83
84
|
}, [getAuthorizationUrl]);
|
|
84
85
|
const logout = useCallback(() => {
|
|
@@ -164,10 +165,12 @@ export function AuthUProvider({ config, children }) {
|
|
|
164
165
|
}, [state.accessToken, state.expiresAt, refreshTokens]);
|
|
165
166
|
useEffect(() => {
|
|
166
167
|
const handleCallback = async () => {
|
|
168
|
+
console.log('[AuthU SDK] handleCallback starting, URL:', window.location.href);
|
|
167
169
|
const params = new URLSearchParams(window.location.search);
|
|
168
170
|
const code = params.get('code');
|
|
169
171
|
const returnedState = params.get('state');
|
|
170
172
|
const error = params.get('error');
|
|
173
|
+
console.log('[AuthU SDK] handleCallback params - code:', !!code, 'state:', returnedState, 'error:', error);
|
|
171
174
|
if (error) {
|
|
172
175
|
setState(prev => ({
|
|
173
176
|
...prev,
|
|
@@ -216,11 +219,14 @@ export function AuthUProvider({ config, children }) {
|
|
|
216
219
|
return;
|
|
217
220
|
}
|
|
218
221
|
const stored = localStorage.getItem(TOKEN_STORAGE_KEY);
|
|
222
|
+
console.log('[AuthU SDK] Checking localStorage for tokens:', !!stored);
|
|
219
223
|
if (stored) {
|
|
220
224
|
try {
|
|
221
225
|
const tokens = JSON.parse(stored);
|
|
226
|
+
console.log('[AuthU SDK] Found tokens, expiresAt:', tokens.expiresAt, 'now:', Date.now(), 'valid:', tokens.expiresAt > Date.now());
|
|
222
227
|
if (tokens.expiresAt > Date.now()) {
|
|
223
228
|
const user = await fetchUserInfo(tokens.accessToken);
|
|
229
|
+
console.log('[AuthU SDK] Tokens valid, user:', user);
|
|
224
230
|
setState({
|
|
225
231
|
isLoading: false,
|
|
226
232
|
isAuthenticated: true,
|
|
@@ -234,9 +240,11 @@ export function AuthUProvider({ config, children }) {
|
|
|
234
240
|
}
|
|
235
241
|
}
|
|
236
242
|
catch {
|
|
243
|
+
console.log('[AuthU SDK] Error parsing stored tokens, removing');
|
|
237
244
|
localStorage.removeItem(TOKEN_STORAGE_KEY);
|
|
238
245
|
}
|
|
239
246
|
}
|
|
247
|
+
console.log('[AuthU SDK] No valid tokens found, setting isLoading: false');
|
|
240
248
|
setState(prev => ({ ...prev, isLoading: false }));
|
|
241
249
|
};
|
|
242
250
|
handleCallback();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivateRoute.d.ts","sourceRoot":"","sources":["../src/PrivateRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAGrC,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,QAAe,EACf,sBAA6B,EAC9B,EAAE,iBAAiB,+
|
|
1
|
+
{"version":3,"file":"PrivateRoute.d.ts","sourceRoot":"","sources":["../src/PrivateRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAGrC,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,QAAe,EACf,sBAA6B,EAC9B,EAAE,iBAAiB,+TA6BnB"}
|
package/dist/PrivateRoute.js
CHANGED
|
@@ -2,14 +2,19 @@ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useAuthU } from './useAuthU.js';
|
|
3
3
|
export function PrivateRoute({ children, fallback = null, loginOnUnauthenticated = true }) {
|
|
4
4
|
const { isLoading, isAuthenticated, login } = useAuthU();
|
|
5
|
+
console.log('[AuthU SDK PrivateRoute] isLoading:', isLoading, 'isAuthenticated:', isAuthenticated);
|
|
5
6
|
if (isLoading) {
|
|
7
|
+
console.log('[AuthU SDK PrivateRoute] Loading...');
|
|
6
8
|
return fallback;
|
|
7
9
|
}
|
|
8
10
|
if (!isAuthenticated) {
|
|
11
|
+
console.log('[AuthU SDK PrivateRoute] Not authenticated, loginOnUnauthenticated:', loginOnUnauthenticated);
|
|
9
12
|
if (loginOnUnauthenticated) {
|
|
13
|
+
console.log('[AuthU SDK PrivateRoute] Triggering login()');
|
|
10
14
|
login();
|
|
11
15
|
}
|
|
12
16
|
return fallback;
|
|
13
17
|
}
|
|
18
|
+
console.log('[AuthU SDK PrivateRoute] Authenticated, rendering children');
|
|
14
19
|
return _jsx(_Fragment, { children: children });
|
|
15
20
|
}
|
package/dist/pkce.js
CHANGED
|
@@ -38,29 +38,29 @@ const STORAGE_KEY_VERIFIER = 'authu_code_verifier';
|
|
|
38
38
|
const STORAGE_KEY_STATE = 'authu_state';
|
|
39
39
|
const STORAGE_KEY_NONCE = 'authu_nonce';
|
|
40
40
|
export function storeCodeVerifier(verifier) {
|
|
41
|
-
|
|
41
|
+
localStorage.setItem(STORAGE_KEY_VERIFIER, verifier);
|
|
42
42
|
}
|
|
43
43
|
export function getCodeVerifier() {
|
|
44
|
-
return
|
|
44
|
+
return localStorage.getItem(STORAGE_KEY_VERIFIER);
|
|
45
45
|
}
|
|
46
46
|
export function clearCodeVerifier() {
|
|
47
|
-
|
|
47
|
+
localStorage.removeItem(STORAGE_KEY_VERIFIER);
|
|
48
48
|
}
|
|
49
49
|
export function storeState(state) {
|
|
50
|
-
|
|
50
|
+
localStorage.setItem(STORAGE_KEY_STATE, state);
|
|
51
51
|
}
|
|
52
52
|
export function getStoredState() {
|
|
53
|
-
return
|
|
53
|
+
return localStorage.getItem(STORAGE_KEY_STATE);
|
|
54
54
|
}
|
|
55
55
|
export function clearState() {
|
|
56
|
-
|
|
56
|
+
localStorage.removeItem(STORAGE_KEY_STATE);
|
|
57
57
|
}
|
|
58
58
|
export function storeNonce(nonce) {
|
|
59
|
-
|
|
59
|
+
localStorage.setItem(STORAGE_KEY_NONCE, nonce);
|
|
60
60
|
}
|
|
61
61
|
export function getStoredNonce() {
|
|
62
|
-
return
|
|
62
|
+
return localStorage.getItem(STORAGE_KEY_NONCE);
|
|
63
63
|
}
|
|
64
64
|
export function clearNonce() {
|
|
65
|
-
|
|
65
|
+
localStorage.removeItem(STORAGE_KEY_NONCE);
|
|
66
66
|
}
|