@gosso/client 0.1.0 → 0.2.0

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/CHANGELOG.md CHANGED
@@ -6,6 +6,11 @@ The format is based on Keep a Changelog, and this project follows Semantic Versi
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.2.0] - 2026-08-12
10
+ ### Added
11
+ - Add opt-in `sessionMode: "cookie"` for HttpOnly Cookie-backed SPA sessions. It keeps access and refresh tokens out of JavaScript-accessible storage while preserving PKCE, MFA, passkeys and account-management APIs.
12
+ - Add `sessionProfileEndpoint` for same-origin applications to obtain minimal UI authorization claims without decoding a bearer token.
13
+
9
14
  ## [0.1.0] - 2026-06-29
10
15
  ### Added
11
16
  - Initial `@gosso/client` browser SDK for Gosso ordinary SPA clients.
package/dist/index.d.ts CHANGED
@@ -6,6 +6,12 @@ export interface GossoClientConfig {
6
6
  postLoginDefaultPath: string;
7
7
  loginPath: string;
8
8
  storagePrefix: string;
9
+ /** Use HttpOnly Gosso cookies instead of exposing tokens to JavaScript. */
10
+ sessionMode?: 'token' | 'cookie';
11
+ /** Same-origin endpoint returning {data:{sub,roles,scope}} for UI authorization. */
12
+ sessionProfileEndpoint?: string;
13
+ /** CSRF cookie used by same-origin application API requests in cookie session mode. */
14
+ csrfCookieName?: string;
9
15
  fetchImpl?: typeof fetch;
10
16
  onAuthRequired?: () => void;
11
17
  onSessionChanged?: (snapshot: SessionSnapshot) => void;
@@ -59,6 +65,7 @@ export interface PasskeyInfo {
59
65
  name: string;
60
66
  created_at?: string;
61
67
  }
68
+ export declare function generateRandomString(length: number): string;
62
69
  export declare function bufferToBase64URL(buffer: ArrayBuffer): string;
63
70
  export declare function base64URLToBuffer(base64URLString: string): ArrayBuffer;
64
71
  export declare function createGossoClient(inputConfig: GossoClientConfig): {
@@ -70,6 +77,12 @@ export declare function createGossoClient(inputConfig: GossoClientConfig): {
70
77
  postLoginDefaultPath: string;
71
78
  loginPath: string;
72
79
  storagePrefix: string;
80
+ /** Use HttpOnly Gosso cookies instead of exposing tokens to JavaScript. */
81
+ sessionMode?: "token" | "cookie";
82
+ /** Same-origin endpoint returning {data:{sub,roles,scope}} for UI authorization. */
83
+ sessionProfileEndpoint?: string;
84
+ /** CSRF cookie used by same-origin application API requests in cookie session mode. */
85
+ csrfCookieName?: string;
73
86
  fetchImpl?: typeof fetch;
74
87
  onAuthRequired?: () => void;
75
88
  onSessionChanged?: (snapshot: SessionSnapshot) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -11,11 +11,22 @@ const defaultConfig = {
11
11
  function normalizeBaseUrl(url) {
12
12
  return url.replace(/\/+$/, '');
13
13
  }
14
- function generateRandomString(length) {
14
+ export function generateRandomString(length) {
15
15
  const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';
16
16
  let text = '';
17
- for (let i = 0; i < length; i += 1) {
18
- text += possible.charAt(Math.floor(Math.random() * possible.length));
17
+ const cryptoObj = (typeof window !== 'undefined' ? window.crypto : null) || (typeof globalThis !== 'undefined' ? globalThis.crypto : null);
18
+ if (cryptoObj && cryptoObj.getRandomValues) {
19
+ const array = new Uint8Array(length);
20
+ cryptoObj.getRandomValues(array);
21
+ for (let i = 0; i < length; i += 1) {
22
+ text += possible.charAt(array[i] % possible.length);
23
+ }
24
+ }
25
+ else {
26
+ // Fallback for environments lacking CSPRNG
27
+ for (let i = 0; i < length; i += 1) {
28
+ text += possible.charAt(Math.floor(Math.random() * possible.length));
29
+ }
19
30
  }
20
31
  return text;
21
32
  }
@@ -25,7 +36,18 @@ async function generateCodeChallenge(verifier) {
25
36
  return bufferToBase64URL(digest);
26
37
  }
27
38
  function cookieSecureAttribute() {
28
- return location.protocol === 'https:' ? '; Secure' : '';
39
+ return typeof location !== 'undefined' && location.protocol === 'https:' ? '; Secure' : '';
40
+ }
41
+ function getCookieName(baseName) {
42
+ return typeof location !== 'undefined' && location.protocol === 'https:' ? `__Secure-${baseName}` : baseName;
43
+ }
44
+ function readCSRFToken(preferredName) {
45
+ for (const raw of document.cookie.split(';')) {
46
+ const [name, ...value] = raw.trim().split('=');
47
+ if (name === preferredName || name === '__Host-csrf_token' || name === 'csrf_token' || name === 'blog_csrf_token')
48
+ return decodeURIComponent(value.join('='));
49
+ }
50
+ return null;
29
51
  }
30
52
  function readClaimsFromAccessToken(accessToken) {
31
53
  try {
@@ -102,6 +124,8 @@ export function createGossoClient(inputConfig) {
102
124
  ...inputConfig,
103
125
  issuer: normalizeBaseUrl(inputConfig.issuer),
104
126
  };
127
+ const cookieSession = config.sessionMode === 'cookie';
128
+ const flowStorage = cookieSession ? sessionStorage : localStorage;
105
129
  const fetcher = config.fetchImpl || fetch.bind(window);
106
130
  const key = (name) => `${config.storagePrefix}:${name}`;
107
131
  const storageKeys = {
@@ -117,13 +141,16 @@ export function createGossoClient(inputConfig) {
117
141
  };
118
142
  let refreshPromise = null;
119
143
  const setCookie = (name, value, maxAgeSeconds) => {
120
- document.cookie = `${name}=${value}; path=/; max-age=${maxAgeSeconds}; SameSite=Lax${cookieSecureAttribute()}`;
144
+ const cookieName = getCookieName(name);
145
+ document.cookie = `${cookieName}=${value}; path=/; max-age=${maxAgeSeconds}; SameSite=Lax${cookieSecureAttribute()}`;
121
146
  };
122
147
  const deleteCookie = (name) => {
123
- document.cookie = `${name}=; path=/; max-age=-1; SameSite=Lax`;
148
+ const cookieName = getCookieName(name);
149
+ document.cookie = `${cookieName}=; path=/; max-age=-1; SameSite=Lax`;
124
150
  };
125
151
  const readProfile = () => {
126
- const profile = localStorage.getItem(storageKeys.userProfile);
152
+ const storage = cookieSession ? sessionStorage : localStorage;
153
+ const profile = storage.getItem(storageKeys.userProfile);
127
154
  if (!profile)
128
155
  return null;
129
156
  try {
@@ -133,8 +160,8 @@ export function createGossoClient(inputConfig) {
133
160
  return null;
134
161
  }
135
162
  };
136
- const getAccessToken = () => localStorage.getItem(storageKeys.accessToken);
137
- const getRefreshToken = () => localStorage.getItem(storageKeys.refreshToken);
163
+ const getAccessToken = () => cookieSession ? null : localStorage.getItem(storageKeys.accessToken);
164
+ const getRefreshToken = () => cookieSession ? null : localStorage.getItem(storageKeys.refreshToken);
138
165
  const getSnapshot = () => {
139
166
  const accessToken = getAccessToken();
140
167
  const refreshToken = getRefreshToken();
@@ -143,7 +170,7 @@ export function createGossoClient(inputConfig) {
143
170
  accessToken,
144
171
  refreshToken,
145
172
  profile,
146
- loggedIn: Boolean(accessToken),
173
+ loggedIn: cookieSession ? Boolean(profile) : Boolean(accessToken),
147
174
  isAdmin: hasAdminAccess(profile, accessToken),
148
175
  };
149
176
  };
@@ -151,6 +178,10 @@ export function createGossoClient(inputConfig) {
151
178
  config.onSessionChanged?.(getSnapshot());
152
179
  };
153
180
  const saveTokenSet = (data) => {
181
+ if (cookieSession) {
182
+ emitSessionChanged();
183
+ return;
184
+ }
154
185
  localStorage.setItem(storageKeys.accessToken, data.access_token);
155
186
  if (data.refresh_token) {
156
187
  localStorage.setItem(storageKeys.refreshToken, data.refresh_token);
@@ -162,6 +193,7 @@ export function createGossoClient(inputConfig) {
162
193
  };
163
194
  const clear = () => {
164
195
  Object.values(storageKeys).forEach((storageKey) => localStorage.removeItem(storageKey));
196
+ Object.values(storageKeys).forEach((storageKey) => sessionStorage.removeItem(storageKey));
165
197
  deleteCookie('access_token');
166
198
  emitSessionChanged();
167
199
  };
@@ -281,6 +313,20 @@ export function createGossoClient(inputConfig) {
281
313
  return refreshPromise;
282
314
  };
283
315
  const fetchUserProfile = async (accessToken = getAccessToken()) => {
316
+ if (cookieSession) {
317
+ const [identity, session] = await Promise.all([
318
+ fetcher(`${config.issuer}/oidc/userinfo`, { credentials: 'same-origin' }),
319
+ config.sessionProfileEndpoint ? fetcher(config.sessionProfileEndpoint, { credentials: 'same-origin' }) : Promise.resolve(null),
320
+ ]);
321
+ if (!identity.ok || (session && !session.ok))
322
+ throw new Error('Failed to fetch user profile');
323
+ const data = await identity.json();
324
+ if (session)
325
+ Object.assign(data, (await session.json()).data || {});
326
+ sessionStorage.setItem(storageKeys.userProfile, JSON.stringify(data));
327
+ emitSessionChanged();
328
+ return data;
329
+ }
284
330
  if (!accessToken)
285
331
  throw new Error('No access token found');
286
332
  const response = await fetcher(`${config.issuer}/oidc/userinfo`, {
@@ -300,6 +346,29 @@ export function createGossoClient(inputConfig) {
300
346
  return data;
301
347
  };
302
348
  const apiFetch = async (url, options = {}) => {
349
+ if (cookieSession) {
350
+ const headers = new Headers(options.headers || {});
351
+ const issuerRequest = url.startsWith(`${config.issuer}/`);
352
+ if (!['GET', 'HEAD', 'OPTIONS'].includes((options.method || 'GET').toUpperCase()) && !headers.has('X-CSRF-Token')) {
353
+ const csrf = readCSRFToken(issuerRequest ? undefined : config.csrfCookieName);
354
+ if (csrf)
355
+ headers.set('X-CSRF-Token', csrf);
356
+ }
357
+ let response = await fetcher(url, { ...options, headers, credentials: 'same-origin' });
358
+ if (response.status === 401 && !issuerRequest) {
359
+ const csrf = readCSRFToken();
360
+ const refreshResponse = await fetcher(`${config.issuer}/api/v1/auth/refresh`, {
361
+ method: 'POST',
362
+ headers: csrf ? { 'X-CSRF-Token': csrf, 'X-Gosso-Cookie-Session': '1' } : { 'X-Gosso-Cookie-Session': '1' },
363
+ credentials: 'same-origin',
364
+ });
365
+ if (refreshResponse.ok)
366
+ response = await fetcher(url, { ...options, headers, credentials: 'same-origin' });
367
+ }
368
+ if (response.status === 401)
369
+ clear();
370
+ return response;
371
+ }
303
372
  let token = getAccessToken();
304
373
  if (!token) {
305
374
  redirectToLogin();
@@ -338,10 +407,10 @@ export function createGossoClient(inputConfig) {
338
407
  const redirectToAuthorize = async (customRedirectUri) => {
339
408
  const verifier = generateRandomString(64);
340
409
  const state = generateRandomString(16);
341
- localStorage.setItem(storageKeys.pkceVerifier, verifier);
342
- localStorage.setItem(storageKeys.authState, state);
410
+ flowStorage.setItem(storageKeys.pkceVerifier, verifier);
411
+ flowStorage.setItem(storageKeys.authState, state);
343
412
  if (customRedirectUri) {
344
- localStorage.setItem(storageKeys.postLoginRedirect, customRedirectUri);
413
+ flowStorage.setItem(storageKeys.postLoginRedirect, customRedirectUri);
345
414
  }
346
415
  const challenge = await generateCodeChallenge(verifier);
347
416
  const authUrl = new URL(`${config.issuer}/oauth2/authorize`);
@@ -355,8 +424,8 @@ export function createGossoClient(inputConfig) {
355
424
  window.location.href = authUrl.toString();
356
425
  };
357
426
  const exchangeCodeForToken = async (code, state) => {
358
- const savedState = localStorage.getItem(storageKeys.authState);
359
- const verifier = localStorage.getItem(storageKeys.pkceVerifier);
427
+ const savedState = flowStorage.getItem(storageKeys.authState);
428
+ const verifier = flowStorage.getItem(storageKeys.pkceVerifier);
360
429
  if (state !== savedState)
361
430
  throw new Error('State mismatch. Potential CSRF attack.');
362
431
  if (!verifier)
@@ -369,26 +438,39 @@ export function createGossoClient(inputConfig) {
369
438
  body.append('redirect_uri', config.redirectUri);
370
439
  const response = await fetcher(`${config.issuer}/oauth2/token`, {
371
440
  method: 'POST',
372
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
441
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded', ...(cookieSession ? { 'X-Gosso-Cookie-Session': '1' } : {}) },
373
442
  body: body.toString(),
443
+ credentials: 'same-origin',
374
444
  });
375
445
  if (!response.ok) {
376
446
  throw new Error(`Token exchange failed: ${await response.text()}`);
377
447
  }
378
448
  const data = (await response.json());
379
- saveTokenSet(data);
380
- localStorage.removeItem(storageKeys.pkceVerifier);
381
- localStorage.removeItem(storageKeys.authState);
449
+ if (!cookieSession)
450
+ saveTokenSet(data);
451
+ flowStorage.removeItem(storageKeys.pkceVerifier);
452
+ flowStorage.removeItem(storageKeys.authState);
382
453
  return data;
383
454
  };
384
455
  const handleRedirectCallback = async (code, state) => {
385
456
  const tokenSet = await exchangeCodeForToken(code, state);
386
- await fetchUserProfile(tokenSet.access_token);
387
- const redirectTo = localStorage.getItem(storageKeys.postLoginRedirect) || config.postLoginDefaultPath;
388
- localStorage.removeItem(storageKeys.postLoginRedirect);
457
+ await fetchUserProfile(cookieSession ? undefined : tokenSet.access_token);
458
+ const redirectTo = flowStorage.getItem(storageKeys.postLoginRedirect) || config.postLoginDefaultPath;
459
+ flowStorage.removeItem(storageKeys.postLoginRedirect);
389
460
  return { tokenSet, redirectTo };
390
461
  };
391
462
  const logout = async (redirectTo = '/') => {
463
+ if (cookieSession) {
464
+ const csrf = readCSRFToken();
465
+ try {
466
+ await fetcher(`${config.issuer}/api/v1/auth/logout`, { method: 'POST', headers: csrf ? { 'X-CSRF-Token': csrf } : {}, credentials: 'same-origin', keepalive: true });
467
+ }
468
+ finally {
469
+ clear();
470
+ window.location.href = redirectTo;
471
+ }
472
+ return;
473
+ }
392
474
  const accessToken = getAccessToken();
393
475
  try {
394
476
  if (accessToken) {
@@ -408,25 +490,31 @@ export function createGossoClient(inputConfig) {
408
490
  const loginWithPassword = async (username, password) => {
409
491
  const response = await fetcher(`${config.issuer}/api/v1/auth/login`, {
410
492
  method: 'POST',
411
- headers: { 'Content-Type': 'application/json' },
493
+ headers: { 'Content-Type': 'application/json', ...(cookieSession ? { 'X-Gosso-Cookie-Session': '1' } : {}) },
412
494
  body: JSON.stringify({ username, password }),
495
+ credentials: 'same-origin',
413
496
  });
414
497
  const result = await parseJsonEnvelope(response, 'Login failed');
415
- if (result.access_token) {
498
+ if (!cookieSession && result.access_token) {
416
499
  saveTokenSet(result);
417
500
  await fetchUserProfile(result.access_token);
418
501
  }
502
+ else if (cookieSession && !result.requires_mfa) {
503
+ await fetchUserProfile();
504
+ }
419
505
  return result;
420
506
  };
421
507
  const verifyMfa = async (mfaToken, code, type = 'totp') => {
422
508
  const response = await fetcher(`${config.issuer}/api/v1/auth/mfa/verify`, {
423
509
  method: 'POST',
424
- headers: { 'Content-Type': 'application/json' },
510
+ headers: { 'Content-Type': 'application/json', ...(cookieSession ? { 'X-Gosso-Cookie-Session': '1' } : {}) },
425
511
  body: JSON.stringify({ mfa_token: mfaToken, code, type }),
512
+ credentials: 'same-origin',
426
513
  });
427
514
  const data = await parseJsonEnvelope(response, 'MFA verification failed');
428
- saveTokenSet(data);
429
- await fetchUserProfile(data.access_token);
515
+ if (!cookieSession)
516
+ saveTokenSet(data);
517
+ await fetchUserProfile(cookieSession ? undefined : data.access_token);
430
518
  return data;
431
519
  };
432
520
  const loginWithPasskey = async () => {
@@ -434,6 +522,7 @@ export function createGossoClient(inputConfig) {
434
522
  method: 'POST',
435
523
  headers: { 'Content-Type': 'application/json' },
436
524
  body: JSON.stringify({}),
525
+ credentials: 'same-origin',
437
526
  });
438
527
  const begin = await parseJsonEnvelope(beginRes, 'Failed to begin passkey login');
439
528
  const options = {
@@ -450,7 +539,7 @@ export function createGossoClient(inputConfig) {
450
539
  const assertionResponse = assertion.response;
451
540
  const completeRes = await fetcher(`${config.issuer}/api/v1/passkey/login/complete`, {
452
541
  method: 'POST',
453
- headers: { 'Content-Type': 'application/json' },
542
+ headers: { 'Content-Type': 'application/json', ...(cookieSession ? { 'X-Gosso-Cookie-Session': '1' } : {}) },
454
543
  body: JSON.stringify({
455
544
  request_id: begin.request_id,
456
545
  id: assertion.id,
@@ -465,8 +554,9 @@ export function createGossoClient(inputConfig) {
465
554
  }),
466
555
  });
467
556
  const data = await parseJsonEnvelope(completeRes, 'Passkey login failed');
468
- saveTokenSet(data);
469
- await fetchUserProfile(data.access_token);
557
+ if (!cookieSession)
558
+ saveTokenSet(data);
559
+ await fetchUserProfile(cookieSession ? undefined : data.access_token);
470
560
  return data;
471
561
  };
472
562
  const updateProfile = async (displayName) => {
@@ -599,7 +689,7 @@ export function createGossoClient(inputConfig) {
599
689
  getRefreshToken,
600
690
  getUserProfile: readProfile,
601
691
  getSnapshot,
602
- isLoggedIn: () => Boolean(getAccessToken()),
692
+ isLoggedIn: () => cookieSession ? Boolean(readProfile()) : Boolean(getAccessToken()),
603
693
  isAdmin: () => hasAdminAccess(readProfile(), getAccessToken()),
604
694
  saveTokenSet,
605
695
  clear,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gosso/client",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Browser SDK for Gosso OAuth/OIDC SPA clients.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -43,6 +43,7 @@
43
43
  "build": "tsc -p tsconfig.build.json",
44
44
  "typecheck": "tsc -p tsconfig.json",
45
45
  "test": "vitest run",
46
+ "prepare": "npm run build",
46
47
  "prepack": "npm run build",
47
48
  "prepublishOnly": "npm run typecheck && npm test && npm run build"
48
49
  },