
auth0-vue
★ 37by auth0 · part of auth0/agent-skills
Use when adding authentication to Vue.js 3 applications (login, logout, user sessions, protected routes) - integrates @auth0/auth0-vue SDK for SPAs with Vite…
Use when adding authentication to Vue.js 3 applications (login, logout, user sessions, protected routes) - integrates @auth0/auth0-vue SDK for SPAs with Vite…
Inspect the full instructions your agent will receiveExpandCollapse
This is the exact playbook injected into your agent when the skill activates — shown here so you can audit it before installing. You don't need to read it to use the skill.
by auth0
Use when adding authentication to Vue.js 3 applications (login, logout, user sessions, protected routes) - integrates @auth0/auth0-vue SDK for SPAs with Vite…
npx skills add https://github.com/auth0/agent-skills --skill auth0-vue
Download ZIPGitHub37
Auth0 Vue.js Integration
Add authentication to Vue.js 3 single-page applications using @auth0/auth0-vue.
When NOT to Use
-
Server-side rendered Vue apps - See Auth0 Nuxt.js guide for SSR patterns
-
Vue 2 applications - This SDK requires Vue 3+, use legacy @auth0/auth0-spa-js wrapper
-
Embedded login - This SDK uses Auth0 Universal Login (redirect-based)
-
Backend API authentication - Use express-openid-connect or JWT validation instead
Detailed Documentation
-
Setup Guide - Automated setup scripts (Bash/PowerShell), CLI commands, manual configuration
-
Integration Guide - Protected routes, API calls, error handling, composables
-
API Reference - Complete SDK API, configuration options, composables reference, testing strategies
Related Skills
-
auth0-quickstart- Basic Auth0 setup -
auth0-migration- Migrate from another auth provider -
auth0-mfa- Add Multi-Factor Authentication -
auth0-dpop- Add DPoP device-bound token binding -
auth0-cli- Manage Auth0 resources from the terminal
Quick Reference
Core Composables:
-
useAuth0()- Main authentication composable -
isAuthenticated- Reactive check if user is logged in -
user- Reactive user profile information -
loginWithRedirect()- Initiate login -
logout()- Log out user -
getAccessTokenSilently()- Get access token for API calls
DPoP Composables (requires useDpop: true in createAuth0 config — see auth0-dpop):
-
createFetcher(config)- Returns a DPoP-awarefetch-compatible function -
generateDpopProof(params)- Manually generate a DPoP proof JWT -
getDpopNonce(id?)- Get the current stored DPoP nonce -
setDpopNonce(nonce, id?)- Store a server-issued DPoP nonce
Common Use Cases:
-
Login/Logout buttons → See Step 4 above
-
Protected routes with navigation guards → Integration Guide
-
API calls with tokens → Integration Guide
-
Error handling → Integration Guide
References
npm install @auth0/auth0-vueRun this in your project — your agent picks the skill up automatically.
Prerequisites
-
Vue 3+ application (Vite or Vue CLI)
-
Auth0 account and application configured
-
If you don't have Auth0 set up yet, use the
auth0-quickstartskill first
Quick Start Workflow
1. Install SDK
npm install @auth0/auth0-vue
2. Configure Environment
For automated setup with Auth0 CLI, see Setup Guide for complete scripts.
For manual setup:
Create .env file:
VITE_AUTH0_DOMAIN=your-tenant.auth0.com
VITE_AUTH0_CLIENT_ID=your-client-id
3. Configure Auth0 Plugin
Update src/main.ts:
import { createApp } from 'vue';
import { createAuth0 } from '@auth0/auth0-vue';
import App from './App.vue';
const app = createApp(App);
app.use(
createAuth0({
domain: import.meta.env.VITE_AUTH0_DOMAIN,
clientId: import.meta.env.VITE_AUTH0_CLIENT_ID,
authorizationParams: {
redirect_uri: window.location.origin
}
})
);
app.mount('#app');
4. Add Authentication UI
Create a login component:
import { useAuth0 } from '@auth0/auth0-vue';
const { loginWithRedirect, logout, isAuthenticated, user, isLoading } = useAuth0();
Loading...
Welcome, {{ user?.name }}
Logout
Login
5. Test Authentication
Start your dev server and test the login flow:
npm run dev
Common Mistakes
Mistake Fix
Forgot to add redirect URI in Auth0 Dashboard Add your application URL (e.g., http://localhost:3000, https://app.example.com) to Allowed Callback URLs in Auth0 Dashboard
Using wrong env var prefix Vite requires VITE_ prefix, Vue CLI uses VUE_APP_
Not handling loading state Always check isLoading before rendering auth-dependent UI
Storing tokens in localStorage Never manually store tokens - SDK handles secure storage automatically
Missing createAuth0 plugin registration Must call app.use(createAuth0({...})) before mounting app
Accessing auth before plugin loads Wrap auth-dependent code in v-if="!isLoading"