/** * Contract source: https://git.io/JOdz5 * * Feel free to let us know via PR, if you find something broken in this * file. */ import User from 'App/Models/User'; import { JWTGuardConfig, JWTGuardContract } from '@ioc:Adonis/Addons/Jwt'; declare module '@ioc:Adonis/Addons/Auth' { /* |-------------------------------------------------------------------------- | Providers |-------------------------------------------------------------------------- | | The providers are used to fetch users. The Auth module comes pre-bundled | with two providers that are `Lucid` and `Database`. Both uses database | to fetch user details. | | You can also create and register your own custom providers. | */ interface ProvidersList { /* |-------------------------------------------------------------------------- | User Provider |-------------------------------------------------------------------------- | | The following provider uses Lucid models as a driver for fetching user | details from the database for authentication. | | You can create multiple providers using the same underlying driver with | different Lucid models. | */ user: { implementation: LucidProviderContract; config: LucidProviderConfig; }; } /* |-------------------------------------------------------------------------- | Guards |-------------------------------------------------------------------------- | | The guards are used for authenticating users using different drivers. | The auth module comes with 3 different guards. | | - SessionGuardContract | - BasicAuthGuardContract | - OATGuardContract ( Opaque access token ) | | Every guard needs a provider for looking up users from the database. | */ interface GuardsList { /* |-------------------------------------------------------------------------- | Web Guard |-------------------------------------------------------------------------- | | The web guard uses sessions for maintaining user login state. It uses | the `user` provider for fetching user details. | */ web: { implementation: SessionGuardContract<'user', 'web'>; config: SessionGuardConfig<'user'>; }; /* |-------------------------------------------------------------------------- | OAT Guard |-------------------------------------------------------------------------- | | OAT, stands for (Opaque access tokens) guard uses database backed tokens | to authenticate requests. | */ api: { implementation: OATGuardContract<'user', 'api'>; config: OATGuardConfig<'user'>; }; /* |-------------------------------------------------------------------------- | Basic Auth Guard |-------------------------------------------------------------------------- | | The basic guard uses basic auth for maintaining user login state. It uses | the `user` provider for fetching user details. | */ basic: { implementation: BasicAuthGuardContract<'user', 'basic'>; config: BasicAuthGuardConfig<'user'>; }; jwt: { implementation: JWTGuardContract<'user', 'api'>; config: JWTGuardConfig<'user'>; }; } }