1.0.2 • Published 2 years ago
unified-auth-js v1.0.2
Unified Auth Service
A TypeScript-based wrapper for multiple authentication providers, offering a unified interface for your authentication needs.
Overview
This project provides a seamless integration layer for various authentication providers, allowing developers to switch between different auth solutions without changing their application code. Currently supported providers include:
- Supabase
- Appwrite
- NextAuth
- Lucia
- Clerk
Features
- Unified Interface: Use a single set of methods for all supported auth providers.
- Easy Provider Switching: Change your auth provider with minimal code changes.
- TypeScript Support: Fully typed for better developer experience and code safety.
- Extensible: Easily add support for new auth providers.
Installation
npm install unified-auth-jsUsage
- Import the library:
import { UnifiedAuth } from 'unified-auth-js';- Initialize with your chosen provider:
const auth = new UnifiedAuth({
provider: 'supabase',
config: {
// Provider-specific configuration
}
});- Use the unified methods:
// Sign up
await auth.signUp(email, password);
// Sign in
await auth.signIn(email, password);
// Sign out
await auth.signOut();
// Get current user
const user = await auth.getCurrentUser();Supported Methods
signUp(email: string, password: string): Promise<User>signIn(email: string, password: string): Promise<User>signOut(): Promise<void>getCurrentUser(): Promise<User | null>resetPassword(email: string): Promise<void>updateUser(data: Partial<User>): Promise<User>deleteUser(): Promise<void>
Adding a New Provider
To add support for a new authentication provider:
- Create a new file in the
src/providersdirectory (e.g.,newProvider.ts). - Implement the
AuthProviderinterface. - Add the new provider to the
ProviderTypeunion insrc/types.ts. - Update the provider factory in
src/UnifiedAuth.ts.
Contributing
Contributions are welcome! Please read our Contributing Guide for more information.
License
This project is licensed under the MIT License - see the LICENSE file for details.