UNPKG

@adonisjs/auth

Version:

Official authentication provider for Adonis framework

35 lines (34 loc) 1.67 kB
import type { HttpContext } from '@adonisjs/core/http'; import type { ConfigProvider } from '@adonisjs/core/types'; import { SessionGuard } from './guard.ts'; import type { GuardConfigProvider } from '../../src/types.ts'; import { SessionLucidUserProvider } from './user_providers/lucid.ts'; import type { SessionGuardOptions, LucidAuthenticatable, SessionUserProviderContract, SessionLucidUserProviderOptions, SessionWithTokensUserProviderContract } from './types.ts'; /** * Configures session guard for authentication using HTTP sessions * * @param config - Configuration object containing the user provider and session options * * @example * const guard = sessionGuard({ * useRememberMeTokens: false, * provider: sessionUserProvider({ * model: () => import('#models/user') * }) * }) */ export declare function sessionGuard<UseRememberTokens extends boolean, UserProvider extends UseRememberTokens extends true ? SessionWithTokensUserProviderContract<unknown> : SessionUserProviderContract<unknown>>(config: { provider: UserProvider | ConfigProvider<UserProvider>; } & SessionGuardOptions<UseRememberTokens>): GuardConfigProvider<(ctx: HttpContext) => SessionGuard<UseRememberTokens, UserProvider>>; /** * Configures user provider that uses Lucid models to authenticate * users using sessions * * @param config - Configuration options for the Lucid user provider * * @example * const userProvider = sessionUserProvider({ * model: () => import('#models/user') * }) */ export declare function sessionUserProvider<Model extends LucidAuthenticatable>(config: SessionLucidUserProviderOptions<Model>): SessionLucidUserProvider<Model>;