auth0-authentication

mindrally/skills · updated Apr 8, 2026

$npx skills add https://github.com/mindrally/skills --skill auth0-authentication
0 commentsdiscussion
summary

You are an expert in Auth0 authentication implementation. Follow these guidelines when working with Auth0 in any project.

skill.md

Auth0 Authentication

You are an expert in Auth0 authentication implementation. Follow these guidelines when working with Auth0 in any project.

Core Principles

  • Always use HTTPS for all Auth0 communications and callbacks
  • Store sensitive configuration (client secrets, API keys) in environment variables, never in code
  • Implement proper error handling for all authentication flows
  • Follow the principle of least privilege for scopes and permissions

Environment Variables

# Required Auth0 Configuration
AUTH0_DOMAIN=your-tenant.auth0.com
AUTH0_CLIENT_ID=your-client-id
AUTH0_CLIENT_SECRET=your-client-secret
AUTH0_AUDIENCE=your-api-audience
AUTH0_CALLBACK_URL=https://your-app.com/callback
AUTH0_LOGOUT_URL=https://your-app.com

Authentication Flows

Authorization Code Flow with PKCE (Recommended for SPAs and Native Apps)

Always use PKCE for public clients:

import { Auth0Client } from '@auth0/auth0-spa-js';

const auth0 = new Auth0Client({
  domain: process.env.AUTH0_DOMAIN,
  clientId: process.env.AUTH0_CLIENT_ID,
  authorizationParams: {
    redirect_uri: window.location.origin,
    audience: process.env.AUTH0_AUDIENCE,
  },
  cacheLocation: 'localstorage', // Use 'memory' for higher security
  useRefreshTokens: true,
});

Authorization Code Flow (Server-Side Applications)

// Express.js example
const { auth } = require('express-openid-connect');

app.use(
  auth({
    authRequired: false,
    auth0Logout: true,
    secret: process.env.AUTH0_SECRET,
    baseURL: process.env.BASE_URL,
    clientID: process.env.AUTH0_CLIENT_ID,
    issuerBaseURL: `https://${process.env.AUTH0_DOMAIN}`,
  })
);

Auth0 Actions Best Practices

Actions have replaced Rules. Follow these guidelines:

Action Structure

exports.onExecutePostLogin = async (event, api) => {
  // 1. Early returns for efficiency
  if (!event.user.email_verified) {
    api.access.deny('Please verify your email before logging in.');
    return;
  }

  // 2. Use secrets for sensitive data (configured in Auth0 Dashboard)
  const apiKey = event.secrets.EXTERNAL_API_KEY;

  // 3. Minimize external calls - they affect login latency
  // 4. Never log sensitive information
  console.log(`User logged in: ${event.user.user_id}`);

  // 5. Add custom claims sparingly
  api.idToken.setCustomClaim('https://myapp.com/roles', event.authorization?.roles || []);
  api.accessToken.setCustomClaim('https://myapp.com/roles', event.authorization?.roles || []);
};

Action Security Rules

  • Store secrets in Action Secrets, never hardcode them
  • Limit the data sent to external services - never send the entire event object
  • Use short timeouts for external API calls (default 20-second limit)
  • Implement proper error handling to avoid authentication failures

Token Management

Access Token Best Practices

// Always validate tokens server-side
const { auth, requiredScopes } = require('express-oauth2-jwt-bearer');

const checkJwt = auth({
  audience: process.env.AUTH0_AUDIENCE,
  issuerBaseURL: `https://${process.env.AUTH0_DOMAIN}/`,
  tokenSigningAlg: 'RS256',
});

// Require specific scopes
const checkScopes = requiredScopes('read:messages');

app.get('/api/private-scoped', checkJwt, checkScopes, (req, res) => {
  res.json({ message: 'Protected resource' });
});

Refresh Token Configuration

  • Enable refresh token rotation
  • Set appropriate token lifetimes (access tokens: 1 hour max, refresh tokens: based on risk)
  • Implement automatic token refresh in your client

Security Best Practices

CSRF Protection

// State parameter is automatically handled by Auth0 SDKs
// For custom implementations, always validate the state parameter
const state = generateSecureRandomString();
sessionStorage.setItem('auth0_state', state);

Redirect URI Security

  • Whitelist all redirect URIs in Auth0 Dashboard
  • Use exact string matching for redirect URIs
  • Never use wildcard redirect URIs in production

Session Management

// Implement session timeouts
const sessionConfig = {
  absoluteDuration: 86400, // 24 hours
  inactivityDuration: 3600, // 1 hour of inactivity
};

Multi-Factor Authentication

// Enforce MFA for sensitive operations
exports.onExecutePostLogin = async (event, api) => {
  // Check if MFA has been completed
  if (!event.authentication?.methods?.find(m => m.name === 'mfa')) {
    // Trigger MFA challenge
    api.authentication.challengeWithAny([
      { type: 'otp' },
      { type: 'push-notification' },
    ]);
  }

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.665 reviews
  • James Ndlovu· Dec 28, 2024

    We added auth0-authentication from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Jin Gonzalez· Dec 12, 2024

    auth0-authentication fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Jin Menon· Dec 8, 2024

    Solid pick for teams standardizing on skills: auth0-authentication is focused, and the summary matches what you get after install.

  • Tariq Ndlovu· Nov 27, 2024

    We added auth0-authentication from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • James Jackson· Nov 19, 2024

    Solid pick for teams standardizing on skills: auth0-authentication is focused, and the summary matches what you get after install.

  • Zara White· Nov 11, 2024

    Keeps context tight: auth0-authentication is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Sakshi Patil· Nov 7, 2024

    auth0-authentication is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Min Torres· Nov 3, 2024

    auth0-authentication has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Chaitanya Patil· Oct 26, 2024

    Keeps context tight: auth0-authentication is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Jin Mehta· Oct 22, 2024

    Solid pick for teams standardizing on skills: auth0-authentication is focused, and the summary matches what you get after install.

showing 1-10 of 65

1 / 7