mirror of
https://github.com/ArthurDanjou/artdanj-api.git
synced 2026-01-14 12:14:33 +01:00
174 lines
5.8 KiB
TypeScript
174 lines
5.8 KiB
TypeScript
/**
|
|
* Config source: https://git.io/JY0mp
|
|
*
|
|
* Feel free to let us know via PR, if you find something broken in this config
|
|
* file.
|
|
*/
|
|
|
|
import { AuthConfig } from '@ioc:Adonis/Addons/Auth'
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Authentication Mapping
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| List of available authentication mapping. You must first define them
|
|
| inside the `contracts/auth.ts` file before mentioning them here.
|
|
|
|
|
*/
|
|
const authConfig: AuthConfig = {
|
|
guard: 'web',
|
|
guards: {
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Web Guard
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Web guard uses classic old school sessions for authenticating users.
|
|
| If you are building a standard web application, it is recommended to
|
|
| use web guard with session driver
|
|
|
|
|
*/
|
|
web: {
|
|
driver: 'session',
|
|
|
|
provider: {
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Driver
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Name of the driver
|
|
|
|
|
*/
|
|
driver: 'lucid',
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Identifier key
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| The identifier key is the unique key on the model. In most cases specifying
|
|
| the primary key is the right choice.
|
|
|
|
|
*/
|
|
identifierKey: 'id',
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Uids
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Uids are used to search a user against one of the mentioned columns. During
|
|
| login, the auth module will search the user mentioned value against one
|
|
| of the mentioned columns to find their user record.
|
|
|
|
|
*/
|
|
uids: ['email'],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Model
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| The model to use for fetching or finding users. The model is imported
|
|
| lazily since the config files are read way earlier in the lifecycle
|
|
| of booting the app and the models may not be in a usable state at
|
|
| that time.
|
|
|
|
|
*/
|
|
model: () => import('App/Models/User'),
|
|
},
|
|
},
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| OAT Guard
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| OAT (Opaque access tokens) guard uses database backed tokens to authenticate
|
|
| HTTP request. This guard DOES NOT rely on sessions or cookies and uses
|
|
| Authorization header value for authentication.
|
|
|
|
|
| Use this guard to authenticate mobile apps or web clients that cannot rely
|
|
| on cookies/sessions.
|
|
|
|
|
*/
|
|
api: {
|
|
driver: 'oat',
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Redis provider for managing tokens
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Uses Redis for managing tokens. We recommend using the "redis" driver
|
|
| over the "database" driver when the tokens based auth is the
|
|
| primary authentication mode.
|
|
|
|
|
| Redis ensure that all the expired tokens gets cleaned up automatically.
|
|
| Whereas with SQL, you have to cleanup expired tokens manually.
|
|
|
|
|
| The foreignKey column is used to make the relationship between the user
|
|
| and the token. You are free to use any column name here.
|
|
|
|
|
*/
|
|
tokenProvider: {
|
|
type: 'api',
|
|
driver: 'redis',
|
|
redisConnection: 'local',
|
|
foreignKey: 'user_id',
|
|
},
|
|
|
|
provider: {
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Driver
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Name of the driver
|
|
|
|
|
*/
|
|
driver: 'lucid',
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Identifier key
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| The identifier key is the unique key on the model. In most cases specifying
|
|
| the primary key is the right choice.
|
|
|
|
|
*/
|
|
identifierKey: 'id',
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Uids
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Uids are used to search a user against one of the mentioned columns. During
|
|
| login, the auth module will search the user mentioned value against one
|
|
| of the mentioned columns to find their user record.
|
|
|
|
|
*/
|
|
uids: ['email'],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Model
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| The model to use for fetching or finding users. The model is imported
|
|
| lazily since the config files are read way earlier in the lifecycle
|
|
| of booting the app and the models may not be in a usable state at
|
|
| that time.
|
|
|
|
|
*/
|
|
model: () => import('App/Models/User'),
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
export default authConfig
|