Skip to content

atlasconsulting/nuxt-bedita

Repository files navigation

BEdita Nuxt module

npm version npm downloads License Nuxt

Nuxt module for BEdita API.

Features

  • Nuxt 3 ready
  • Easy integration with BEdita API
  • expose API for login, logout, signup
  • Auto import composables useBeditaAuth, useBeditaSignup, useBeditaRecaptcha (only v3 version is supported)
  • Auto import server utils

Quick Setup

  1. Add @atlasconsulting/nuxt-bedita dependency to your project
# Using pnpm
pnpm add -D @atlasconsulting/nuxt-bedita

# Using yarn
yarn add --dev @atlasconsulting/nuxt-bedita

# Using npm
npm install --save-dev @atlasconsulting/nuxt-bedita
  1. Add @atlasconsulting/nuxt-bedita to the modules section of nuxt.config.ts.
export default defineNuxtConfig({
  modules: [
    '@atlasconsulting/nuxt-bedita'
  ],
  bedita: {
    apiBaseUrl: 'https://api-bedita.mydomain.com', // required
    apiKey: '<bedita-api-key>', // required
    auth: { // optional
      global: true, // install beditaAuth as global middleware or not
      required: false, // require user authenticated for every routes
      publicRoutes: [], // public routes, no authentication is required
      unauthenticatedRedirect: '/sign-in', // unauthenticated redirect route
      rolesGuard: {}, // roles guard (based on BEdita user's roles)
    },
    endpoints: ['auth', 'signup'], // API endpoints added to app
    proxyEndpoints: [], // endpoints proxied to BEdita API as is (by default all GET requests are proxied)
    recaptcha: {
      enabled: true, // default true
      siteKey: '<recaptcha-site-key>', // required if recaptcha is enabled
      secretKey: '<recaptcha-secret-key>', // required if recaptcha is enabled
      hideBadge: false, // default false, hide Recaptcha badge (https://developers.google.com/recaptcha/docs/faq#id-like-to-hide-the-recaptcha-badge.-what-is-allowed)
      useRecaptchaNet: true, // default true, allow to use the domain `recaptcha.net` instead of `google.com`
    },
    replaceTranslations: true, // replace main objects languages using `lang` query string
    resetPasswordPath: '/reset-password', // route path to page used for password reset. Sent via email to user in the forgotten password flow.
    session: {
      name: 'bedita', // session cookie name
      secret: '<session-secret>', // required private key used to encrypt session
    }, 
  }
})

See documentation for more details.

That's it! You can now use BEdita Nuxt module in your Nuxt app ✨

Usage

See documentation.

Development

# Install dependencies
npm install

# Generate type stubs
npm run dev:prepare

# Develop with the playground
npm run dev

# Build the playground
npm run dev:build

# Run ESLint
npm run lint

# Run Vitest
npm run test
npm run test:watch

# Release new version
npm run release