feat: add basic example
This commit is contained in:
@@ -1,13 +1,9 @@
|
||||
import { InjectionToken, inject } from '@outposts/injection-js';
|
||||
import type {
|
||||
AnyRoute,
|
||||
Router,
|
||||
TrailingSlashOption,
|
||||
} from '@tanstack/react-router';
|
||||
import type { Router } from '@tanstack/react-router';
|
||||
import { AbstractRouter } from 'src/router';
|
||||
import type { AuthFeature } from '../../provide-auth';
|
||||
|
||||
export type TanStackRouter = Router<AnyRoute, TrailingSlashOption, boolean>;
|
||||
export type TanStackRouter = Router<any, any, any, any, any, any>;
|
||||
|
||||
export const TANSTACK_ROUTER = new InjectionToken<TanStackRouter>(
|
||||
'TANSTACK_ROUTER'
|
||||
|
||||
@@ -1,14 +1,79 @@
|
||||
import { HttpClient } from '@ngify/http';
|
||||
import type { Provider } from '@outposts/injection-js';
|
||||
import { DataService } from './api/data.service';
|
||||
import { HttpBaseService } from './api/http-base.service';
|
||||
import {
|
||||
PASSED_CONFIG,
|
||||
type PassedInitialConfig,
|
||||
createStaticLoader,
|
||||
} from './auth-config';
|
||||
import { AuthStateService } from './auth-state/auth-state.service';
|
||||
import { CheckAuthService } from './auth-state/check-auth.service';
|
||||
import { AutoLoginService } from './auto-login/auto-login.service';
|
||||
import { CallbackService } from './callback/callback.service';
|
||||
import { CodeFlowCallbackService } from './callback/code-flow-callback.service';
|
||||
import { ImplicitFlowCallbackService } from './callback/implicit-flow-callback.service';
|
||||
import { IntervalService } from './callback/interval.service';
|
||||
import { PeriodicallyTokenCheckService } from './callback/periodically-token-check.service';
|
||||
import { RefreshSessionRefreshTokenService } from './callback/refresh-session-refresh-token.service';
|
||||
import { RefreshSessionService } from './callback/refresh-session.service';
|
||||
import { AuthWellKnownDataService } from './config/auth-well-known/auth-well-known-data.service';
|
||||
import { AuthWellKnownService } from './config/auth-well-known/auth-well-known.service';
|
||||
import { ConfigurationService } from './config/config.service';
|
||||
import { StsConfigLoader } from './config/loader/config-loader';
|
||||
import { ConfigValidationService } from './config/validation/config-validation.service';
|
||||
import { DOCUMENT } from './dom';
|
||||
import { JwkExtractor } from './extractors/jwk.extractor';
|
||||
import { CodeFlowCallbackHandlerService } from './flows/callback-handling/code-flow-callback-handler.service';
|
||||
import { HistoryJwtKeysCallbackHandlerService } from './flows/callback-handling/history-jwt-keys-callback-handler.service';
|
||||
import { ImplicitFlowCallbackHandlerService } from './flows/callback-handling/implicit-flow-callback-handler.service';
|
||||
import { RefreshSessionCallbackHandlerService } from './flows/callback-handling/refresh-session-callback-handler.service';
|
||||
import { RefreshTokenCallbackHandlerService } from './flows/callback-handling/refresh-token-callback-handler.service';
|
||||
import { StateValidationCallbackHandlerService } from './flows/callback-handling/state-validation-callback-handler.service';
|
||||
import { UserCallbackHandlerService } from './flows/callback-handling/user-callback-handler.service';
|
||||
import { FlowsDataService } from './flows/flows-data.service';
|
||||
import { FlowsService } from './flows/flows.service';
|
||||
import { RandomService } from './flows/random/random.service';
|
||||
import { ResetAuthDataService } from './flows/reset-auth-data.service';
|
||||
import { SigninKeyDataService } from './flows/signin-key-data.service';
|
||||
import { CheckSessionService } from './iframe/check-session.service';
|
||||
import { IFrameService } from './iframe/existing-iframe.service';
|
||||
import { RefreshSessionIframeService } from './iframe/refresh-session-iframe.service';
|
||||
import { SilentRenewService } from './iframe/silent-renew.service';
|
||||
import { ClosestMatchingRouteService } from './interceptor/closest-matching-route.service';
|
||||
import { AbstractLoggerService } from './logging/abstract-logger.service';
|
||||
import { ConsoleLoggerService } from './logging/console-logger.service';
|
||||
import { LoggerService } from './logging/logger.service';
|
||||
import { LoginService } from './login/login.service';
|
||||
import { ParLoginService } from './login/par/par-login.service';
|
||||
import { ParService } from './login/par/par.service';
|
||||
import { PopUpLoginService } from './login/popup/popup-login.service';
|
||||
import { PopUpService } from './login/popup/popup.service';
|
||||
import { ResponseTypeValidationService } from './login/response-type-validation/response-type-validation.service';
|
||||
import { StandardLoginService } from './login/standard/standard-login.service';
|
||||
import { LogoffRevocationService } from './logoff-revoke/logoff-revocation.service';
|
||||
import { OidcSecurityService } from './oidc.security.service';
|
||||
import { PublicEventsService } from './public-events/public-events.service';
|
||||
import { AbstractSecurityStorage } from './storage/abstract-security-storage';
|
||||
import { BrowserStorageService } from './storage/browser-storage.service';
|
||||
import { DefaultSessionStorageService } from './storage/default-sessionstorage.service';
|
||||
import { StoragePersistenceService } from './storage/storage-persistence.service';
|
||||
import { UserService } from './user-data/user.service';
|
||||
import { CryptoService } from './utils/crypto/crypto.service';
|
||||
import { EqualityService } from './utils/equality/equality.service';
|
||||
import { FlowHelper } from './utils/flowHelper/flow-helper.service';
|
||||
import {
|
||||
PLATFORM_ID,
|
||||
PlatformProvider,
|
||||
} from './utils/platform-provider/platform.provider';
|
||||
import { RedirectService } from './utils/redirect/redirect.service';
|
||||
import { TokenHelperService } from './utils/tokenHelper/token-helper.service';
|
||||
import { CurrentUrlService } from './utils/url/current-url.service';
|
||||
import { UrlService } from './utils/url/url.service';
|
||||
import { JwkWindowCryptoService } from './validation/jwk-window-crypto.service';
|
||||
import { JwtWindowCryptoService } from './validation/jwt-window-crypto.service';
|
||||
import { StateValidationService } from './validation/state-validation.service';
|
||||
import { TokenValidationService } from './validation/token-validation.service';
|
||||
|
||||
/**
|
||||
* A feature to be used with `provideAuth`.
|
||||
@@ -32,9 +97,17 @@ export function provideAuth(
|
||||
|
||||
export function _provideAuth(passedConfig: PassedInitialConfig): Provider[] {
|
||||
return [
|
||||
{
|
||||
provide: DOCUMENT,
|
||||
useFactory: () => document,
|
||||
},
|
||||
HttpClient,
|
||||
{
|
||||
provide: PLATFORM_ID,
|
||||
useValue: 'browser',
|
||||
},
|
||||
// Make the PASSED_CONFIG available through injection
|
||||
{ provide: PASSED_CONFIG, useValue: passedConfig },
|
||||
|
||||
// Create the loader: Either the one getting passed or a static one
|
||||
passedConfig?.loader || {
|
||||
provide: StsConfigLoader,
|
||||
@@ -46,5 +119,65 @@ export function _provideAuth(passedConfig: PassedInitialConfig): Provider[] {
|
||||
useClass: DefaultSessionStorageService,
|
||||
},
|
||||
{ provide: AbstractLoggerService, useClass: ConsoleLoggerService },
|
||||
StandardLoginService,
|
||||
JwkWindowCryptoService,
|
||||
ParLoginService,
|
||||
AuthStateService,
|
||||
RefreshTokenCallbackHandlerService,
|
||||
JwkExtractor,
|
||||
TokenHelperService,
|
||||
RefreshSessionIframeService,
|
||||
ImplicitFlowCallbackHandlerService,
|
||||
CallbackService,
|
||||
EqualityService,
|
||||
FlowsDataService,
|
||||
PopUpService,
|
||||
FlowsService,
|
||||
StoragePersistenceService,
|
||||
ClosestMatchingRouteService,
|
||||
CryptoService,
|
||||
AutoLoginService,
|
||||
RedirectService,
|
||||
LoginService,
|
||||
CurrentUrlService,
|
||||
UserCallbackHandlerService,
|
||||
IFrameService,
|
||||
BrowserStorageService,
|
||||
ParService,
|
||||
LoggerService,
|
||||
RandomService,
|
||||
PopUpLoginService,
|
||||
AuthWellKnownService,
|
||||
RefreshSessionRefreshTokenService,
|
||||
CodeFlowCallbackService,
|
||||
StateValidationService,
|
||||
FlowHelper,
|
||||
ImplicitFlowCallbackService,
|
||||
PublicEventsService,
|
||||
CodeFlowCallbackHandlerService,
|
||||
UrlService,
|
||||
ConfigValidationService,
|
||||
RefreshSessionService,
|
||||
HttpBaseService,
|
||||
AuthWellKnownDataService,
|
||||
CheckAuthService,
|
||||
SilentRenewService,
|
||||
StateValidationCallbackHandlerService,
|
||||
JwtWindowCryptoService,
|
||||
ResetAuthDataService,
|
||||
IntervalService,
|
||||
LogoffRevocationService,
|
||||
HistoryJwtKeysCallbackHandlerService,
|
||||
PlatformProvider,
|
||||
RefreshSessionCallbackHandlerService,
|
||||
CheckSessionService,
|
||||
ConfigurationService,
|
||||
ResponseTypeValidationService,
|
||||
DataService,
|
||||
UserService,
|
||||
PeriodicallyTokenCheckService,
|
||||
SigninKeyDataService,
|
||||
TokenValidationService,
|
||||
OidcSecurityService,
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user