| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /**
- * 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'
- 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<typeof User>
- config: LucidProviderConfig<typeof User>
- }
- }
- /*
- |--------------------------------------------------------------------------
- | 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'>
- client: SessionClientContract<'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'>
- client: OATClientContract<'user'>
- }
- }
- }
|