/nuxt-artisan

Laravel Sanctum integration for Nuxt

Primary LanguageTypeScript

nuxt-artisan

Nuxt Artisan

npm version npm downloads License Nuxt

Integrate Laravel Sanctum into Nuxt.

Features

  • ✈️  Proxy requests using Nitro
  • 💂  Preconfigured Middlewares
  • ✨  useLaravelApi composable which handles auth for you by default.
  • 🔐  useLaravelAuth composable with login() and logout() methods.
  • 🚀 Nuxt 3 support

Quick Setup

  1. Add nuxt-artisan dependency to your project
# Using pnpm
pnpm add -D nuxt-artisan

# Using yarn
yarn add --dev nuxt-artisan

# Using npm
npm install --save-dev nuxt-artisan
  1. Add nuxt-artisan to the modules section of nuxt.config.ts
export default defineNuxtConfig({
  modules: [
    'nuxt-artisan'
  ],
  
  artisan: {
    proxy: true, // define if you want proxy requests or no
    url: 'https://api.laravel.test', // backend url 

    endpoints: {
      user: 'api/user', // user details endpoint (guarded one)
      login: 'api/login', // login endpoint,
      logout: 'api/logout', // logout endpoint
    },
    
    // Optional
    routeMiddlewares: {
      fetch: true, // prefetch user before request
      auth: true, // enable `artisan:auth` middleware
      guest: true, // enable `artisan:guest` middleware
    },
    
    // Optional
    redirects: {
      login: '/', // redirect after login, define false if you want write own logic
      logout: '/login', // redirect after logout, define false if you want write own logic
      
      middlewares: {
        auth: '/login', // redirect after unauthorized middleware fired, define false if you want write custom one.
        guest: '/' // redirect after authorized user tried access public guest only page, define false if you want write custom one.
      }
    }
  }
})

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