返回 Skill 列表
extension
分类: 开发与工程无需 API Key

nuxt-auth

使用Laravel Sanctum进行身份验证和基于权限的授权。当实现登录/登出、通过权限保护页面、在组件中检查权限或理解认证流程时使用。

person作者: jakexiaohubgithub

Nuxt Authentication & Authorization

Laravel Sanctum authentication with permission-based access control.

Core Concepts

auth.md - Complete auth patterns, permissions, page protection

Sanctum Setup

// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['nuxt-auth-sanctum'],

  sanctum: {
    baseUrl: process.env.NUXT_PUBLIC_API_URL,
    endpoints: {
      login: '/auth/login',
      user: '/auth/user',
      csrf: '/sanctum/csrf-cookie',
      logout: '/auth/logout',
    },
    redirect: {
      onAuthOnly: '/auth/login',
      onGuestOnly: '/',
    },
  },
})

Auth Composable

const { user, isAuthenticated, login, logout, init } = useSanctumAuth()

// Login
await login({ email, password })

// Logout
await logout()

// Check auth
if (isAuthenticated.value) { /* ... */ }

Permission Checking

const { can, cannot } = usePermissions()

// Single permission
if (can('leads.create')) { /* ... */ }

// In templates
<UButton v-if="can('leads.create')" @click="createLead">Create</UButton>

Page Protection

definePageMeta({
  permissions: 'leads.list',
})