User Auth initialization
The User Auth initializer configures authentication and authorization features including login, registration, password management, and session handling. Use initialization to customize authentication flows and user data models.
Configuration options
The following table describes the configuration options available for the User Auth initializer:
| Parameter | Type | Req? | Description |
|---|---|---|---|
langDefinitions | langDefinitions | No | Language definitions for internationalization (i18n). Override dictionary keys for localization or branding. |
models | models | No | Custom data models for type transformations. Extend or modify default models with custom fields and transformers. |
authHeaderConfig | authHeaderConfig | Yes | Configuration for authHeaderConfig. |
Basic initialization
Initialize the drop-in with default settings:
import { initializers } from '@dropins/tools/initializer.js';import { initialize } from '@dropins/storefront-auth';
await initializers.mountImmediately(initialize, {});Language definitions
Override dictionary keys for localization or branding. The langDefinitions object maps locale keys to custom strings that override the drop-in’s default text.
import { initializers } from '@dropins/tools/initializer.js';import { initialize } from '@dropins/storefront-auth';
const customStrings = { 'AddToCart': 'Add to Bag', 'Checkout': 'Complete Purchase', 'Price': 'Cost',};
const langDefinitions = { default: customStrings,};
await initializers.mountImmediately(initialize, { langDefinitions });Customizing data models
Extend or transform data models by providing custom transformer functions. Use the models option to add custom fields or modify existing data structures returned from the backend.
The following example shows how to customize the CustomerModel model for the User Auth drop-in:
import { initializers } from '@dropins/tools/initializer.js';import { initialize } from '@dropins/storefront-auth';
const models = { CustomerModel: { transformer: (data) => ({ // Add custom fields from backend data customField: data?.custom_field, promotionBadge: data?.promotion?.label, // Transform existing fields displayPrice: data?.price?.value ? `$${data.price.value}` : 'N/A', }), },};
await initializers.mountImmediately(initialize, { models });Available models
The following models can be customized through the models configuration option:
| Model | Description |
|---|---|
CustomerModel | Transforms customer authentication data including profile information, addresses, and account settings. Use this to add custom fields or modify user data structures. |
Drop-in-specific configuration
The User Auth drop-in provides additional configuration options beyond the standard langDefinitions and models. These options customize drop-in-specific behaviors and features.
import { initializers } from '@dropins/tools/initializer.js';import { initialize } from '@dropins/storefront-auth';
await initializers.mountImmediately(initialize, { // Drop-in-specific configuration authHeaderConfig: {},});Configuration types
The following TypeScript definitions show the structure of each configuration object:
langDefinitions
langDefinitions?: { [locale: string]: { [key: string]: string; };};models
models?: { [modelName: string]: Model<any>;};authHeaderConfig
authHeaderConfig: { header: string; tokenPrefix: string; };Model definitions
The following TypeScript definitions show the structure of each customizable model:
CustomerModel
export interface CustomerModel { firstName: string; lastName: string; email: string; groupUid: string; customAttributes?: Record<string, string>[]; errors?: { message: string }[];}