← 返回 Skills 市场
auth0

Auth0 Spa Js

作者 Auth0 · GitHub ↗ · v1.0.1 · MIT-0
cross-platform ⚠ suspicious
32
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install auth0-spa-js
功能描述
Use when adding authentication to Vanilla JS, Svelte, or any framework-agnostic single-page applications - integrates @auth0/auth0-spa-js SDK for SPAs withou...
使用说明 (SKILL.md)

Auth0 SPA JS Integration

Add authentication to any browser-based single-page application using @auth0/auth0-spa-js — the low-level Auth0 SDK for Vanilla JS, Svelte, SolidJS, and any SPA not using React, Angular, or Vue.

Agent instruction: Before providing SDK setup instructions, fetch the latest release version by running:

gh api repos/auth0/auth0-spa-js/releases/latest --jq '.tag_name'

Use the returned version in all dependency lines instead of any hardcoded version below. If the command fails, fall back to checking https://github.com/auth0/auth0-spa-js/releases.

Prerequisites

  • Modern browser with ES2017+ support
  • npm or yarn (or use CDN for no-bundler apps)
  • Auth0 account with a Single Page Application configured
  • If you don't have Auth0 set up, see auth0-quickstart

When NOT to Use

Quick Start Workflow

1. Install SDK

npm install @auth0/auth0-spa-js

Or via CDN (no bundler). Run this to get the latest version, then use it in your HTML:

VERSION=$(npm view @auth0/auth0-spa-js version)
\x3Cscript src="https://cdn.auth0.com/js/auth0-spa-js/$VERSION/auth0-spa-js.production.js">\x3C/script>

2. Configure Auth0

For automated setup with Auth0 CLI, see Setup Guide for complete scripts.

For manual setup, create .env (Vite):

VITE_AUTH0_DOMAIN=your-tenant.auth0.com
VITE_AUTH0_CLIENT_ID=your-client-id

In Auth0 Dashboard, set for your Single Page Application:

  • Allowed Callback URLs: http://localhost:5173
  • Allowed Logout URLs: http://localhost:5173
  • Allowed Web Origins: http://localhost:5173

3. Initialize Auth0 Client

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

const auth0 = await createAuth0Client({
  domain: import.meta.env.VITE_AUTH0_DOMAIN,
  clientId: import.meta.env.VITE_AUTH0_CLIENT_ID,
  authorizationParams: {
    redirect_uri: window.location.origin
  }
});

// Handle redirect callback after login
const query = new URLSearchParams(window.location.search);
if ((query.has('code') || query.has('error')) && query.has('state')) {
  await auth0.handleRedirectCallback();
  window.history.replaceState({}, document.title, window.location.pathname);
}

4. Add Login / Logout

Agent instruction: Before adding new UI elements, search the project for existing click handlers for login, logout, sign-in, or sign-out buttons. If existing handlers are found, hook the Auth0 code into them without modifying the existing UI. Only create new buttons if no existing handlers are found.

// Login
document.getElementById('login-btn').addEventListener('click', async () => {
  await auth0.loginWithRedirect();
});

// Logout
document.getElementById('logout-btn').addEventListener('click', () => {
  auth0.logout({
    logoutParams: { returnTo: window.location.origin }
  });
});

// Update UI based on auth state
const isAuthenticated = await auth0.isAuthenticated();
if (isAuthenticated) {
  const user = await auth0.getUser();
  console.log(user.name, user.email);
}

5. Get Access Tokens for API Calls

const accessToken = await auth0.getTokenSilently();

const response = await fetch('https://your-api.example.com/data', {
  headers: { Authorization: `Bearer ${accessToken}` }
});

6. Build & Verify

Agent instruction: After completing the integration, build the project to verify it compiles successfully:

npm run build

If the build fails, analyze the error output and fix the issues. Common integration build failures include:

  • Module not found: Missing npm install @auth0/auth0-spa-js — run the install command
  • Cannot find name 'import.meta': TypeScript target too low — set "target": "ES2020" or higher in tsconfig.json
  • createAuth0Client is not a function: Wrong import path or CDN usage without bundle step
  • Env vars undefined at runtime: Vite requires VITE_ prefix; webpack/CRA requires REACT_APP_ prefix

Re-run the build after each fix. Track the number of build-fix iterations.

Failcheck: If the build still fails after 5–6 fix attempts, stop and ask the user using AskUserQuestion: "The build is still failing after several fix attempts. How would you like to proceed?"

  • Let the skill continue fixing iteratively — continue the build-fix loop for another 5–6 attempts
  • Fix it manually — show the remaining errors and let the user resolve them
  • Skip build verification — proceed without a successful build

Detailed Documentation

  • Setup Guide — Automated setup scripts (Bash/PowerShell), Auth0 CLI commands, .env configuration, callback URL setup
  • Integration Patterns — Token management, calling APIs, refresh tokens, organizations, MFA, DPoP, error handling, advanced patterns
  • Testing & Reference — Configuration options, claims reference, testing checklist, common issues, security considerations

Common Mistakes

Mistake Fix
Callback URL port mismatch (e.g., localhost:3001 vs localhost:5173) Match Allowed Callback URLs exactly to your dev server port in Auth0 Dashboard
client_secret in SPA code SPAs must never have a client secret — remove it. Auth0 sets auth method to None for SPA apps
Tokens stored in localStorage Use in-memory storage (default) or sessionStorage. Never localStorage — XSS risk
getTokenSilently() throws login_required on page refresh Add your app origin to Allowed Web Origins in Auth0 Dashboard
handleRedirectCallback() not called after redirect Must call after login redirect to exchange the auth code; without this the URL params persist and re-trigger
Domain includes https:// prefix Auth0 domain should be hostname only: your-tenant.auth0.com, not https://your-tenant.auth0.com
loginWithPopup() called from async init code Popups must be triggered directly from a user gesture (click handler). Never call from init or page load code
Using Auth0Provider from @auth0/auth0-react in Vanilla JS For Vanilla JS, use createAuth0Client() directly — no provider component needed

Related Skills

Quick Reference

Core Methods

Method Description
createAuth0Client(options) Create and initialize client (calls checkSession internally)
new Auth0Client(options) Instantiate without auto session check
auth0.loginWithRedirect(options?) Redirect to Auth0 Universal Login
auth0.loginWithPopup(options?) Open Auth0 login in a popup
auth0.logout(options?) Clear session and redirect
auth0.handleRedirectCallback(url?) Process redirect result after login
auth0.isAuthenticated() Promise\x3Cboolean>
auth0.getUser() Promise\x3CUser | undefined>
auth0.getTokenSilently(options?) Promise\x3Cstring> — access token
auth0.checkSession() Attempt silent re-authentication

Common Use Cases

References

安全使用建议
Install or invoke this skill only if you are comfortable with it changing Auth0 tenant configuration and editing local environment files. Prefer manual .env edits or review the helper script first, confirm the active Auth0 tenant, and keep your project under version control before allowing automated fixes.
功能分析
Type: OpenClaw Skill Name: auth0-spa-js Version: 1.0.1 The skill bundle is a legitimate tool for integrating the Auth0 SPA SDK into web applications. It includes a Node.js bootstrap script (`scripts/bootstrap.mjs`) and documentation that guide an AI agent through installing dependencies, configuring Auth0 via the official CLI, and setting up environment variables. The instructions in `SKILL.md` and `setup.md` are task-aligned and include proactive safety warnings regarding the handling of `.env` files and automated build verification.
能力标签
requires-oauth-tokenrequires-sensitive-credentials
能力评估
Purpose & Capability
The stated purpose, adding Auth0 SPA authentication, matches most instructions and code, but the optional bootstrap path goes beyond code snippets by creating Auth0 applications and changing tenant connection settings.
Instruction Scope
The setup guide explicitly tells the agent not to read .env contents, but the included env-writer helper reads the whole existing .env file to merge updates.
Install Mechanism
There is no install spec and no evidence of automatic execution, but the documentation includes user-run package/CLI setup steps, including a remote shell installer and helper scripts with unpinned dependency ranges.
Credentials
The skill writes to project configuration and can read existing .env content that may contain unrelated secrets; this is sensitive local environment access and is not fully aligned with the privacy wording.
Persistence & Privilege
The skill uses the logged-in Auth0 CLI session to make persistent tenant changes, but the helper displays a change plan and asks for confirmation before applying them.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install auth0-spa-js
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /auth0-spa-js 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.1
Initial publish
元数据
Slug auth0-spa-js
版本 1.0.1
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Auth0 Spa Js 是什么?

Use when adding authentication to Vanilla JS, Svelte, or any framework-agnostic single-page applications - integrates @auth0/auth0-spa-js SDK for SPAs withou... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 32 次。

如何安装 Auth0 Spa Js?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install auth0-spa-js」即可一键安装,无需额外配置。

Auth0 Spa Js 是免费的吗?

是的,Auth0 Spa Js 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Auth0 Spa Js 支持哪些平台?

Auth0 Spa Js 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Auth0 Spa Js?

由 Auth0(@auth0)开发并维护,当前版本 v1.0.1。

💬 留言讨论