Skip to main content
Version: 3.1.0

Release Notes

v3.1.0

February 2026

New Features

AuthenticationFlowGuard

New route guard for checking authentication flow type. Blocks navigation to login/register pages when using external authentication (SSO/OAuth) and initiates the external login flow instead:

import {
authenticationFlowGuard,
useAuthenticationFlowGuard,
AuthenticationFlowGuard,
} from '@abpjs/account';

// Function-based guard (for route loaders)
const result = authenticationFlowGuard({
isInternalAuth: false, // true for password auth, false for SSO
initLogin: () => auth.login(),
});

if (!result.canActivate) {
// Navigation blocked, login initiated
console.log(result.reason); // 'external_auth'
}

// React hook version
function ProtectedRoute({ children }) {
const auth = useAuth();
const canActivate = useAuthenticationFlowGuard({
isInternalAuth: true,
initLogin: auth.login,
});

if (!canActivate) {
return null; // Login redirect in progress
}

return children;
}

// Class-based version
const guard = new AuthenticationFlowGuard(
isInternalAuth,
() => auth.login()
);

if (!guard.canActivate()) {
// Navigation blocked
}

ChangePasswordForm: hideCurrentPassword Prop

New hideCurrentPassword prop for users who don't have a password (e.g., social login users):

import { ChangePasswordForm } from '@abpjs/account';

// For social login users (no current password needed)
<ChangePasswordForm hideCurrentPassword={true} />

// When undefined, automatically determined based on user's profile
<ChangePasswordForm />

ManageProfile: hideChangePasswordTab Prop

New hideChangePasswordTab prop and automatic handling for external users:

import { ManageProfile } from '@abpjs/account';

// Force hide change password tab
<ManageProfile hideChangePasswordTab={true} />

// When undefined, automatically hidden for external (social login) users
<ManageProfile />

The component now:

  • Fetches the user profile on mount to determine external user status
  • Shows a loading state while profile is being fetched
  • Automatically hides the change password tab for external users

New Exports

Guards:

  • authenticationFlowGuard() - Function-based guard for route loaders
  • useAuthenticationFlowGuard() - React hook version
  • AuthenticationFlowGuard - Class-based guard
  • AuthenticationFlowGuardResult - Result interface
  • AuthenticationFlowGuardOptions - Options interface

v3.0.0

February 2026

New Features

Route Providers

New route provider system for initializing account routes:

import { initializeAccountRoutes } from '@abpjs/account';

// Call once during app initialization
initializeAccountRoutes();

// This registers:
// - /account (parent route, invisible)
// - /account/login
// - /account/register
// - /account/manage-profile

For advanced configuration with a custom RoutesService:

import { configureRoutes, ACCOUNT_ROUTE_PROVIDERS } from '@abpjs/account';
import { getRoutesService } from '@abpjs/core';

const routesService = getRoutesService();
const addRoutes = configureRoutes(routesService);
addRoutes();

Account Options Factory

New factory function for creating account options with defaults:

import { accountOptionsFactory } from '@abpjs/account';

// With custom redirect URL
const options = accountOptionsFactory({ redirectUrl: '/dashboard' });
// { redirectUrl: '/dashboard' }

// With defaults
const defaultOptions = accountOptionsFactory({});
// { redirectUrl: '/' }

Config Subpackage

The @abp/ng.account/config functionality is now merged into the main package:

// All config exports are available from the main package
import {
configureRoutes,
ACCOUNT_ROUTE_PROVIDERS,
initializeAccountRoutes,
eAccountRouteNames,
} from '@abpjs/account';

New Exports

  • initializeAccountRoutes() - Initialize account routes
  • configureRoutes(routes) - Configure routes with custom RoutesService
  • ACCOUNT_ROUTE_PROVIDERS - Route provider configuration object
  • accountOptionsFactory(options) - Create account options with defaults

v2.9.0

February 2026

  • Version alignment with @abpjs/core

v2.7.0

February 2026

New Features

Component Replacement Keys

New constants for replacing account components:

import { eAccountComponents } from '@abpjs/account';

// Available component keys:
// eAccountComponents.Login = 'Account.LoginComponent'
// eAccountComponents.Register = 'Account.RegisterComponent'
// eAccountComponents.ManageProfile = 'Account.ManageProfileComponent'
// eAccountComponents.TenantBox = 'Account.TenantBoxComponent'
// eAccountComponents.AuthWrapper = 'Account.AuthWrapperComponent'
// eAccountComponents.ChangePassword = 'Account.ChangePasswordComponent'
// eAccountComponents.PersonalSettings = 'Account.PersonalSettingsComponent'

Route Names

New constants for account route names (localization keys):

import { eAccountRouteNames } from '@abpjs/account';

// Available route names:
// eAccountRouteNames.Account = 'AbpAccount::Menu:Account'
// eAccountRouteNames.Login = 'AbpAccount::Login'
// eAccountRouteNames.Register = 'AbpAccount::Register'
// eAccountRouteNames.ManageProfile = 'AbpAccount::ManageYourProfile'

TenantIdResponse Enhancement

The TenantIdResponse interface now includes the tenant name:

interface TenantIdResponse {
success: boolean;
tenantId: string;
name?: string; // New in v2.7.0
}

New Exports

  • eAccountComponents - Constants for component replacement keys
  • eAccountRouteNames - Constants for route names (localization keys)

v2.4.0

February 2026

New Features

  • AuthWrapper.isMultiTenancyEnabled prop - Control whether the tenant box is displayed in authentication forms:

    import { AuthWrapper, LoginForm } from '@abpjs/account';

    function LoginPage() {
    return (
    <AuthWrapper
    mainContent={<LoginForm onSuccess={() => {}} />}
    isMultiTenancyEnabled={true} // Show tenant switching (default)
    />
    );
    }

    This corresponds to Angular's isMultiTenancyEnabled$ observable. Defaults to true.

  • AccountService.apiName property - New property for REST API configuration. Defaults to 'default':

    import { useAccountService } from '@abpjs/account';

    function MyComponent() {
    const accountService = useAccountService();
    console.log(accountService.apiName); // 'default'
    }

v2.2.0

February 2026

  • Version alignment with @abpjs/core

v2.1.0

February 2026

  • Version alignment with @abpjs/core

v2.0.0

January 2026

Breaking Changes

  • ACCOUNT_ROUTES removed - This deprecated export has been removed. Use AccountProvider to configure routes.

New Features

  • useSelfRegistrationEnabled hook - Check if self-registration is enabled from ABP settings:

    import { useSelfRegistrationEnabled } from '@abpjs/account';

    function RegisterLink() {
    const isEnabled = useSelfRegistrationEnabled();
    if (!isEnabled) return null;
    return <Link to="/register">Register</Link>;
    }
  • AuthWrapper.enableLocalLogin prop - Control visibility of local login forms:

    <AuthWrapper enableLocalLogin={false}>
    {/* Shows disabled message instead of form */}
    </AuthWrapper>

    Reads from Abp.Account.EnableLocalLogin setting by default.

  • LoginForm respects self-registration setting - Register link is automatically hidden when Abp.Account.IsSelfRegistrationEnabled is false

  • RegisterForm respects self-registration setting - Automatically redirects to login if self-registration is disabled

  • Account namespace - New TypeScript namespace with component interface types for type-safe customization

ABP Settings Support

The following ABP settings are now respected:

SettingEffect
Abp.Account.EnableLocalLoginHides username/password login when false
Abp.Account.IsSelfRegistrationEnabledHides register link/page when false

v1.1.0

January 2026

New Components

  • AuthWrapper - Wrapper component for authentication forms providing consistent layout
  • ManageProfile - Tabbed profile management interface with personal settings and password change
  • ChangePasswordForm - Password change form with validation
  • PersonalSettingsForm - User profile information editing form

See Manage Profile for usage details.


v1.0.0

January 2026

  • Version alignment with @abpjs/core

Deprecations

  • ACCOUNT_ROUTES deprecated - Routes are now configured via AccountProvider. Direct use of ACCOUNT_ROUTES is deprecated and will be removed in a future version.

v0.9.0

January 2026

Breaking Changes

  • ACCOUNT_ROUTES format changed - Now returns { routes: ABP.FullRoute[] } instead of ABP.FullRoute[]

New Features

  • AccountService - New service with findTenant() and register() methods
  • useAccountService hook - Access AccountService in components
  • RegisterForm now functional - Makes actual API calls and auto-logs in users
  • TenantBox API integration - Validates tenant names via API, updates Redux session

New Types

  • RegisterRequest, RegisterResponse, TenantIdResponse

v0.8.0

January 2026

  • Version alignment with @abpjs/core

v0.7.6

January 2026 - Initial Release

  • LoginForm component
  • RegisterForm component
  • TenantBox component
  • OAuth2 resource owner password flow