text: 'use strict'
  
  /** @type {import('@adonisjs/framework/src/Env')} */
  const Env = use('Env')
  
  module.exports = {
    /*
    |--------------------------------------------------------------------------
    | Authenticator
    |--------------------------------------------------------------------------
    |
    | Authentication is a combination of serializer and scheme with extra
    | config to define on how to authenticate a user.
    |
    | Available Schemes - basic, session, jwt, api
    | Available Serializers - lucid, database
    |
    */
    authenticator: 'session',
  
    /*
    |--------------------------------------------------------------------------
    | Session
    |--------------------------------------------------------------------------
    |
    | Session authenticator makes use of sessions to authenticate a user.
    | Session authentication is always persistent.
    |
    */
    session: {
      serializer: 'lucid',
      model: 'App/Models/User',
      scheme: 'session',
      uid: 'email',
      password: 'password'
    },
  
    /*
    |--------------------------------------------------------------------------
    | Basic Auth
    |--------------------------------------------------------------------------
    |
    | The basic auth authenticator uses basic auth header to authenticate a
    | user.
    |
    | NOTE:
    | This scheme is not persistent and users are supposed to pass
    | login credentials on each request.
    |
    */
    basic: {
      serializer: 'lucid',
      model: 'App/Models/User',
      scheme: 'basic',
      uid: 'email',
      password: 'password'
    },
  
    /*
    |--------------------------------------------------------------------------
    | Jwt
    |--------------------------------------------------------------------------
    |
    | The jwt authenticator works by passing a jwt token on each HTTP request
    | via HTTP `Authorization` header.
    |
    */
    jwt: {
      serializer: 'lucid',
      model: 'App/Models/User',
      scheme: 'jwt',
      uid: 'email',
      password: 'password',
      options: {
        secret: Env.get('APP_KEY'),
        algorithm: 'HS256'
      }
    },
  
    /*
    |--------------------------------------------------------------------------
    | Api
    |--------------------------------------------------------------------------
    |
    | The Api scheme makes use of API personal tokens to authenticate a user.
    |
    */
    api: {
      serializer: 'lucid',
      model: 'App/Models/User',
      scheme: 'api',
      uid: 'email',
      password: 'password'
    }
  }
  