Missing Files

This commit is contained in:
Lorenz Hilpert
2025-10-02 20:29:29 +02:00
parent eea5c23ce9
commit 58815d6fc3
2 changed files with 7 additions and 28 deletions

View File

@@ -1,3 +1,4 @@
export * from './lib/storage-providers';
export * from './lib/signal-store-feature';
export * from './lib/storage';
export * from './lib/tokens';

View File

@@ -1,36 +1,14 @@
import { inject, InjectionToken, signal, Signal } from '@angular/core';
import { logger } from '@isa/core/logging';
import { OAuthService } from 'angular-oauth2-oidc';
import z from 'zod';
import { InjectionToken, signal, Signal } from '@angular/core';
export const USER_SUB = new InjectionToken<Signal<string>>(
'core.storage.user-sub',
{
factory: () => {
const _logger = logger(() => ({
context: 'USER_SUB',
}));
const auth = inject(OAuthService);
const claims = auth.getIdentityClaims();
if (!claims || typeof claims !== 'object' || !('sub' in claims)) {
const err = new Error(
'No valid identity claims found. User is anonymous.',
);
_logger.error(err.message);
throw err;
}
const validation = z.string().safeParse(claims['sub']);
if (!validation.success) {
const err = new Error('Invalid "sub" claim in identity claims.');
_logger.error(err.message, { claims });
throw err;
}
return signal(validation.data);
return signal('anonymous');
},
},
);
export function provideUserSubFactory(factory: () => Signal<string>) {
return { provide: USER_SUB, useFactory: factory };
}