@adonisjs/auth
Version:
Official authentication provider for Adonis framework
35 lines (34 loc) • 1.67 kB
TypeScript
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>;