4c6058c656
- Create reusable auth-module/ with frontend and backend components - Frontend: PocketBaseAuth class for OAuth2 login and token management - Backend: GraphTokenManager and PocketBaseValidator for token operations - Includes TypeScript types and comprehensive README - No project-specific dependencies - ready to use in other projects
54 lines
952 B
TypeScript
54 lines
952 B
TypeScript
/**
|
|
* Frontend Auth Configuration
|
|
*/
|
|
export interface AuthConfig {
|
|
pbUrl?: string;
|
|
collection?: string;
|
|
provider?: string;
|
|
loginContainerId?: string;
|
|
userDisplayNameId?: string;
|
|
userEmailId?: string;
|
|
loginBtnId?: string;
|
|
loginErrorId?: string;
|
|
}
|
|
|
|
/**
|
|
* Backend Auth Configuration
|
|
*/
|
|
export interface BackendAuthConfig {
|
|
clientId?: string;
|
|
tenantId?: string;
|
|
clientSecret?: string;
|
|
}
|
|
|
|
/**
|
|
* Auth state object
|
|
*/
|
|
export interface AuthState {
|
|
isAuthenticated: boolean;
|
|
user: {
|
|
id: string;
|
|
name: string;
|
|
email: string;
|
|
} | null;
|
|
token: string | null;
|
|
}
|
|
|
|
/**
|
|
* Graph token cache object
|
|
*/
|
|
export interface GraphTokenCache {
|
|
token: string;
|
|
expiresOn: number;
|
|
}
|
|
|
|
/**
|
|
* Auth event callbacks
|
|
*/
|
|
export interface AuthCallbacks {
|
|
onAuthSuccess?: (state: AuthState) => void;
|
|
onAuthFailure?: (error: any) => void;
|
|
onTokenUpdate?: (state: AuthState) => void;
|
|
onUiUpdate?: (state: AuthState) => void;
|
|
}
|