Skip to main content
Version: 3.0.0

Overview

The @abpjs/core package provides the foundational infrastructure for ABP React applications. It includes authentication, configuration management, localization, permissions, REST services, and session management.

npm version

Installation​

npm install @abpjs/core

Features​

  • Authentication - OAuth2/OIDC support with oidc-client-ts
  • Configuration - ABP application configuration management
  • Localization - Multi-language support with dynamic resource loading
  • Permissions - Fine-grained permission checking
  • REST Service - Axios-based HTTP client with interceptors
  • Session Management - User session state handling
  • Loading Strategies - Strategy-based script/style loading (v2.4.0)
  • Standard DTOs - ABP-standard DTO classes for entities and pagination (v2.4.0)

Main Exports​

Hooks​

HookDescription
useAuth()Authentication state and methods (login, logout, isAuthenticated)
useConfig()Access ABP application configuration
useDirection()RTL/LTR direction based on current language
useLocalization()Translation functions (t() and instant())
usePermission()Permission checking utilities
useProfile()User profile management
useRestService()HTTP client for API calls
useSession()Session state management

Services​

ServiceDescription
ApplicationConfigurationServiceFetch ABP configuration from backend
ConfigServiceRuntime configuration state
ProfileServiceUser profile API operations
LocalizationServiceTranslation services
RestServiceHTTP client with ABP interceptors
LazyLoadServiceDynamic module/script loading
DomInsertionServiceDOM content insertion with tracking (v2.4.0)

Redux Slices​

SliceDescription
configSliceApplication configuration state
profileSliceUser profile state
sessionSliceSession and authentication state

Quick Example​

import { useAuth, useLocalization, usePermission } from '@abpjs/core';

function MyComponent() {
const { isAuthenticated, login, logout } = useAuth();
const { t } = useLocalization();
const { hasPermission } = usePermission();

if (!isAuthenticated) {
return <button onClick={login}>{t('Login')}</button>;
}

return (
<div>
<h1>{t('Welcome')}</h1>
{hasPermission('AbpIdentity.Users') && (
<a href="/users">{t('ManageUsers')}</a>
)}
<button onClick={logout}>{t('Logout')}</button>
</div>
);
}

NPM Package​

View on npm: @abpjs/core

Documentation​