1.0.0-alpha.11 • Published 1 year ago

@hudoro/central-auth v1.0.0-alpha.11

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

Hudoro Central Auth

A comprehensive authentication library for React applications with centralized login support, token management, and route protection.

Installation

npm install @hudoro/central-auth
# or
yarn add @hudoro/central-auth
# or
pnpm install @hudoro/central-auth

Setup

Wrap your application with AuthProvider

import { AuthProvider, AuthConfig } from '@hudoro/central-auth';

const config: AuthConfig  = {
  appKey: 'your-app-key',
  redirectUrl: 'https://login.yourdomain.com',
  storageKey: 'optional-storage-auth-key',
};

function App() {
  return (
    <AuthProvider config={config}>
      <YourApp />
    </AuthProvider>
  );
}

Wrap your component with Private Route

import { PrivateRoute } from '@hudoro/central-auth';

<PrivateRoute>
  <Dashboard />
</PrivateRoute>

Usage

Auth Hook in Components

import { useAuth } from '@hudoro/cental-auth';

function Dashboard() {
  const { isAuthenticated, logout } = useAuth();

  return (
    <div>
      {isAuthenticated ? (
        <button onClick={logout}>Logout</button>
      ) : (
        <p>Please login</p>
      )}
    </div>
  );
}

Auth Instance (for non component usage)

// Initialize once in your app root
import { useAuthInstance } from '@hudoro/central-auth';

function RootComponent() {
  useAuthInstance(); // Initialize for non-component usage
  return <App />;
}
// Then anywhere else:
import { getAuthInstance } from "@hudoro/central-auth";
const token = await getAuthInstance().getAccessToken();
FeatureuseAuthgetAuthInstance
UsageOnly in componentsAnywhere
React RequirementMust be in React treeNot required
InitializationAutomaticRequires manual setup
Type Safety✅ Full✅ Full
Example Use CaseUI ComponentsServices, utilities

Core API

Components

<AuthProvider> - Root auth context
<PrivateRoute> - Route guard

Hooks

useAuth() - Access auth state/actions

useAuthInstance() - Initialize for non-React usage

Utilities

getAuthInstance() - Get auth methods outside components

getAccessToken() - Get current token (auto-refreshes if expired not yet available)

API Reference

<AuthProvider/>

The root provider component.

PropTypeRequiredDefaultDescription
configAuthConfigYes-Configuration object
onLoginSuccess(data: AuthModel) => voidNo-Callback on successful login
onLoginError(error: string) => voidNo-Callback on login error
onLogout() => voidNo-Callback on logout
lazybooleanNofalseWhen true, disables auto-redirect to login

<PrivateRoute/>

Route private component.

PropTypeDefaultDescription
childrenReactNode-Content to private
loadingFallbackReactNodenullShown during auth initialization
unauthenticatedFallbackReactNodenullShown when user is unauthenticated
initializationDelaynumber50Delay to wait for auth initialization (ms)

AuthProvider Config

AuthConfig

KeyRequiredDescriptionDefault Value
appKeyYesYour application identifier-
redirectUrlYesCentralized login page URL-
storageKeyNoCustom storage key for auth dataconfig.appKey
1.0.0-alpha.13

1 year ago

1.0.0-alpha.12

1 year ago

1.0.0-alpha.11

1 year ago

1.0.0-alpha.10

1 year ago

1.0.0-alpha.8

1 year ago

1.0.0-alpha.7

1 year ago

1.0.0-alpha.6

1 year ago

1.0.0-alpha.5

1 year ago

1.0.0-alpha.4

1 year ago

1.0.0-alpha.3

1 year ago

1.0.0-alpha.2

1 year ago

1.0.0-alpha.1

1 year ago