@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 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,2CA+SnE"}
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"}
@@ -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,+TAenB"}
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"}
@@ -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
- sessionStorage.setItem(STORAGE_KEY_VERIFIER, verifier);
41
+ localStorage.setItem(STORAGE_KEY_VERIFIER, verifier);
42
42
  }
43
43
  export function getCodeVerifier() {
44
- return sessionStorage.getItem(STORAGE_KEY_VERIFIER);
44
+ return localStorage.getItem(STORAGE_KEY_VERIFIER);
45
45
  }
46
46
  export function clearCodeVerifier() {
47
- sessionStorage.removeItem(STORAGE_KEY_VERIFIER);
47
+ localStorage.removeItem(STORAGE_KEY_VERIFIER);
48
48
  }
49
49
  export function storeState(state) {
50
- sessionStorage.setItem(STORAGE_KEY_STATE, state);
50
+ localStorage.setItem(STORAGE_KEY_STATE, state);
51
51
  }
52
52
  export function getStoredState() {
53
- return sessionStorage.getItem(STORAGE_KEY_STATE);
53
+ return localStorage.getItem(STORAGE_KEY_STATE);
54
54
  }
55
55
  export function clearState() {
56
- sessionStorage.removeItem(STORAGE_KEY_STATE);
56
+ localStorage.removeItem(STORAGE_KEY_STATE);
57
57
  }
58
58
  export function storeNonce(nonce) {
59
- sessionStorage.setItem(STORAGE_KEY_NONCE, nonce);
59
+ localStorage.setItem(STORAGE_KEY_NONCE, nonce);
60
60
  }
61
61
  export function getStoredNonce() {
62
- return sessionStorage.getItem(STORAGE_KEY_NONCE);
62
+ return localStorage.getItem(STORAGE_KEY_NONCE);
63
63
  }
64
64
  export function clearNonce() {
65
- sessionStorage.removeItem(STORAGE_KEY_NONCE);
65
+ localStorage.removeItem(STORAGE_KEY_NONCE);
66
66
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@authu/react",
3
- "version": "0.1.27",
3
+ "version": "1.0.15",
4
4
  "description": "React SDK for AuthU - Centralized Multi-Tenant Authentication Service",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",