AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Integrate Tanstack Router

skill-thunder-id-skills-integrate-tanstack-router · by thunder-id

Add ThunderID authentication to a React app using TanStack Router, with the official @thunderid/react and @thunderid/tanstack-router SDKs. Use when asked to "add ThunderID to my TanStack Router app" or when package.json contains @tanstack/react-router.

No reviews yet
0 installs
24 views
0.0% view→install

Install

$ agentstack add skill-thunder-id-skills-integrate-tanstack-router

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-thunder-id-skills-integrate-tanstack-router)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Integrate Tanstack Router? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

ThunderID — React + TanStack Router Integration

Assumes ThunderID is running at https://localhost:8090. If not, run /setup-thunderid first.

Step 1 — Register an Application

Ask the developer to create an application in ThunderID and share the Client ID before continuing.

Guide them through these steps:

  1. Open https://localhost:8090/console and sign in (default: admin / secret)
  2. Navigate to Applications → New Application
  3. Fill in:
  • Name: their app name (e.g. my-tanstack-router-app)
  • Type: Single Page Application
  • Authorized Redirect URL: http://localhost:5173/callback
  1. Click Create and copy the Client ID shown on the next screen

The /callback path matches the ThunderIDCallback route added in Step 3 — they must match exactly.

Once they paste the Client ID, use it in all subsequent steps. Do not use a placeholder — wait for the real value.

Step 2 — Install

Detect the package manager from lockfiles: pnpm-lock.yamlpnpm add, yarn.lockyarn add, bun.lockbbun add, else npm install.

npm install @thunderid/react @thunderid/tanstack-router

Step 3 — Configure Provider and Callback Route

Edit src/main.tsx:

import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import { RouterProvider } from '@tanstack/react-router'
import { ThunderIDProvider } from '@thunderid/react'
import { router } from './router'

createRoot(document.getElementById('root')!).render(
  
    "
      baseUrl="https://localhost:8090"
    >
      
    
  
)

Add the callback route in your router definition (src/router.tsx):

import { createRouter, createRoute, createRootRoute } from '@tanstack/react-router'
import { ThunderIDCallback } from '@thunderid/tanstack-router'

const rootRoute = createRootRoute()

const callbackRoute = createRoute({
  getParentRoute: () => rootRoute,
  path: '/callback',
  component: ThunderIDCallback,
})

export const router = createRouter({
  routeTree: rootRoute.addChildren([callbackRoute /*, ...other routes */]),
})

Step 4 — Protect Routes

Use beforeLoad to guard protected routes:

import { createRoute, redirect } from '@tanstack/react-router'
import { getThunderIDAuth } from '@thunderid/tanstack-router'

const protectedRoute = createRoute({
  getParentRoute: () => rootRoute,
  path: '/dashboard',
  beforeLoad: ({ context }) => {
    const auth = getThunderIDAuth(context)
    if (!auth.isSignedIn) {
      throw redirect({ to: '/' })
    }
  },
  component: Dashboard,
})

Step 5 — Add Auth UI

import {
  SignedIn, SignedOut, SignInButton, SignOutButton, Loading, User,
} from '@thunderid/react'

function App() {
  return (
    <>
      Loading...
      Sign Out
      Sign In
      
        
          {(user) => user && Welcome, {user.name || user.username}!}
        
      
    
  )
}

Step 6 — Run and Verify

npm run dev

Click Sign In — you should be redirected to https://localhost:8090 and returned to your app after login.

Troubleshooting

Certificate error — Visit https://localhost:8090 in your browser and accept the warning once.

Callback not working — Ensure the redirect URL registered in the ThunderID console exactly matches http://localhost:5173/callback.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.