UNPKG

@better-auth-ui/core

Version:

Authentication components and data utilities for [Better Auth](https://better-auth.com), available for React and Solid.

95 lines (94 loc) 2.98 kB
import { ApiKeyExpirationOptions } from './api-key-expiration'; import { ApiKeyLocalization } from './api-key-localization'; export type ApiKeyPluginOptions = { /** * Override the plugin's default localization strings. * @remarks `ApiKeyLocalization` */ localization?: Partial<ApiKeyLocalization>; /** * Enable organization-owned API keys. * * When `true`, the plugin contributes an organization-scoped API keys card * to `<OrganizationSettings />`, and list/create/delete operations made on * behalf of an organization send `configId: "organization"`. * * Requires a matching server-side `apiKey` config entry with * `configId: "organization"` and `references: "organization"`: * * ```ts * apiKey([ * { configId: "default", references: "user" }, * { configId: "organization", references: "organization" } * ]) * ``` * * @default false */ organization?: boolean; /** * Configure the expiration choices shown when a user creates an API key. * * Set this to `false` to hide the expiration field and preserve the Better * Auth server default. Intervals are configured in days and sent to Better * Auth as seconds. * * @default { intervals: [30, 90], defaultInterval: 30, allowNever: true } */ keyExpiration?: ApiKeyExpirationOptions | false; /** API key configurations users can choose from. */ configurations?: ApiKeyConfiguration[]; /** Number of keys shown per page. @default 10 */ pageSize?: number; }; export type ApiKeyConfiguration = { id: string; label: string; description?: string; organization?: boolean; }; export declare const apiKeyPlugin: ((options?: ApiKeyPluginOptions | undefined) => { localization: { apiKey: string; apiKeys: string; apiKeysDescription: string; createApiKey: string; noApiKeys: string; name: string; expiration: string; day: string; days: string; never: string; created: string; expires: string; neverExpires: string; newApiKey: string; newApiKeyWarning: string; deleteApiKey: string; deleteApiKeyWarning: string; dismissNewKey: string; editApiKey: string; configuration: string; enabled: string; disabled: string; requests: string; remaining: string; lastRequest: string; neverRequested: string; sortBy: string; newest: string; oldest: string; nameAscending: string; nameDescending: string; previousPage: string; nextPage: string; }; organization: boolean; keyExpiration: false | import('./api-key-expiration').ResolvedApiKeyExpirationOptions; configurations: ApiKeyConfiguration[]; pageSize: number; } & { id: "apiKey"; }) & { id: "apiKey"; };