added db migrations for users and initial data added first controllers added auth middleware added rest routes and controller stub ...
74 lines
2.2 KiB
TypeScript
74 lines
2.2 KiB
TypeScript
/**
|
|
* 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'>
|
|
}
|
|
}
|
|
}
|