Skip to content

zakodium/adonis-mongodb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Adonis MongoDB

MongoDB provider for AdonisJS 5.

Zakodium logo

Maintained by Zakodium

NPM version build status Test coverage npm download

⚠️ This module is unstable and in active development. Use at your own risk.

Prerequisites

This provider requires AdonisJS v5 and won't work with AdonisJS v4.

We recommend using MongoDB >=5.0. Earlier versions are not tested.

Installation

npm i @zakodium/adonis-mongodb
node ace configure @zakodium/adonis-mongodb

Documentation

Using with the authentication provider

Adonis MongoDB can be used to authenticate users with the @adonisjs/auth addon. To enable it, edit the following files:

contracts/auth.ts

Example of a configuration with the session guard:

import {
  MongodbModelAuthProviderContract,
  MongodbModelAuthProviderConfig,
} from '@ioc:Zakodium/Mongodb/Odm';

import User from 'App/Models/User';

declare module '@ioc:Adonis/Addons/Auth' {
  interface ProvidersList {
    user: {
      implementation: MongodbModelAuthProviderContract<typeof User>;
      config: MongodbModelAuthProviderConfig<typeof User>;
    };
  }

  interface GuardsList {
    web: {
      implementation: SessionGuardContract<'user', 'web'>;
      config: SessionGuardConfig<'user'>;
    };
  }
}

config/auth.ts

import { AuthConfig } from '@ioc:Adonis/Addons/Auth';

const authConfig: AuthConfig = {
  guard: 'web',
  guards: {
    web: {
      driver: 'session',
      provider: {
        driver: 'mongodb-model',
      },
    },
  },
};

export default authConfig;

Development

To run tests locally:

docker compose up -d
node reset-dev.mjs
npm test
docker compose down

License

MIT