@sourceregistry/sveltekit-oidc 2.0.0 → 2.0.1

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.
@@ -11,6 +11,7 @@
11
11
  import type {Snippet} from 'svelte';
12
12
 
13
13
  import {setOIDCContext} from './context.js';
14
+ import {classifySessionMonitorMessage} from './session-monitor.js';
14
15
 
15
16
  type RedirectMode = 'login' | 'logout' | 'reload' | 'none';
16
17
 
@@ -298,11 +299,19 @@
298
299
  }, checkSessionIntervalMs);
299
300
 
300
301
  const onMessage = (event: MessageEvent) => {
301
- if (event.origin !== targetOrigin || typeof event.data !== 'string') {
302
+ if (event.origin !== targetOrigin) {
302
303
  return;
303
304
  }
304
- if (event.data === 'changed' || event.data === 'error') {
305
- debug('iframe_session_event', {result: event.data, origin: event.origin});
305
+
306
+ const result = classifySessionMonitorMessage(event.data);
307
+ if (result === 'error') {
308
+ // `error` means the OP could not determine session state (for example,
309
+ // transient storage or network denial). It is not proof of revocation.
310
+ debug('iframe_session_error', {origin: event.origin});
311
+ return;
312
+ }
313
+ if (result === 'changed') {
314
+ debug('iframe_session_event', {result, origin: event.origin});
306
315
  status = 'revoked';
307
316
  void logout(true).then(() => handleRedirect(redirectOnRevoked));
308
317
  }
@@ -0,0 +1,2 @@
1
+ export type OIDCSessionMonitorMessage = 'changed' | 'unchanged' | 'error' | 'ignored';
2
+ export declare function classifySessionMonitorMessage(data: unknown): OIDCSessionMonitorMessage;
@@ -0,0 +1,3 @@
1
+ export function classifySessionMonitorMessage(data) {
2
+ return data === 'changed' || data === 'unchanged' || data === 'error' ? data : 'ignored';
3
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sourceregistry/sveltekit-oidc",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "OIDC authentication helpers for SvelteKit applications",
5
5
  "license": "Apache-2.0",
6
6
  "scripts": {