/** * Config source: https://git.io/JY0mp * * Feel free to let us know via PR, if you find something broken in this config * file. */ import type { 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: 'api', guards: { /* |-------------------------------------------------------------------------- | Web Guard |-------------------------------------------------------------------------- | | Web guard uses classic old school sessions for authenticating user. | 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 user. 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', }, 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 user. 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