@pelygo/auth
v0.2.6
Published
Centralized authentication package for VCOMSUITE applications
Maintainers
Readme
@pelygo/auth
Centralized authentication package for VCOMSUITE applications.
Overview
This package provides shared authentication utilities for both Vue and React applications in the VCOMSUITE ecosystem. It handles:
- JWT token storage and retrieval
- SSO authentication between apps
- Cross-tab logout synchronization
- User info and permissions
- Pre-built LoginForm and SelectClientForm components
Installation
npm install @pelygo/authPeer Dependencies
Install peer dependencies based on your framework:
For Vue applications:
npm install vue@^3.0.0 pinia@^2.0.0 vue-router@^4.0.0For React applications:
npm install react@^18.0.0Usage
Core utilities (framework-agnostic)
import { getAuthToken, getUserInfo, isAuthenticated } from '@pelygo/auth/core';Vue applications
import { createAuthStore, createAuthGuard, useAuth, useClient, LoginForm, SelectClientForm } from '@pelygo/auth/vue';
// Create Pinia store
const useAuthStore = createAuthStore();
// Setup router guard
const router = createRouter({ ... });
router.beforeEach(createAuthGuard(useAuthStore));
// Pre-built components (simplest approach)
// <LoginForm @success="$router.push('/')" />
// <SelectClientForm @select="$router.push('/')" />
// In components (for custom UI)
const { isAuthenticated, user, isAdmin, logout } = useAuth(useAuthStore);
const { selectedClient, selectClient } = useClient(useAuthStore);React applications
import { useAuth, useClient, LoginForm, SelectClientForm } from '@pelygo/auth/react';
// Pre-built components (simplest approach)
function SignInPage() {
return <LoginForm onSuccess={() => window.location.href = '/'} />;
}
function ClientSelectionPage() {
return <SelectClientForm onSelect={() => window.location.href = '/'} />;
}
// Hook-based approach (for custom UI)
function MyComponent() {
const { isAuthenticated, user, isAdmin, logout } = useAuth();
const { selectedClient, selectClient } = useClient();
if (!isAuthenticated) return <SignInPage />;
return <Dashboard user={user} />;
}Development
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Type check
npm run typecheckLicense
Proprietary - Licensed exclusively for use in authorized VCOMSUITE applications. See LICENSE for details.
