temporalio/ui · Archived

auth-testing

Test OAuth2 token refresh and session expiry locally. Use when working on auth, tokens, SSO, OIDC, or session management features.

First seen Aug 20, 2026

Installation

$ npx skills add temporalio/ui --skill auth-testing

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from temporalio/ui.

npx skills add temporalio/ui

Browse all from temporalio/ui

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 430
License LICENSE
Default branch main
Open issues 167
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,656 B
  • docs SUMMARY.md 150 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Auth Testing Skill

Test OAuth2 authentication flows locally using the built-in OIDC server.

Quick Start

pnpm dev:with-auth

This starts:

Configuration Files

File Purpose
server/config/with-auth.yaml UI server auth settings (maxSessionDuration, providers)
utilities/oidc-server/support/configuration.ts OIDC server TTLs (token expiry, session duration)

Testing Scenarios

1. Token Refresh

Test that tokens refresh automatically before expiry.

Config: AccessToken TTL (60s) < maxSessionDuration (2m)

Steps:

  1. Login at http://localhost:3000
  2. Open browser DevTools > Network tab
  3. Wait ~60 seconds
  4. Observe /auth/refresh request that renews tokens

2. Session Expiry

Test that sessions expire and force re-login.

Config: maxSessionDuration = Session TTL (both 2m)

Steps:

  1. Login at http://localhost:3000
  2. Wait 2 minutes
  3. Make any API request (navigate, refresh)
  4. Should redirect to OIDC login page

3. Unlimited Session

Test long-lived sessions with only token refresh.

Config changes:

# server/config/with-auth.yaml
auth:
  maxSessionDuration: 0 # Disable session limit
// utilities/oidc-server/support/configuration.ts
ttl: {
  Session: 60 * 60 * 24,  // 1 day
}

Max Session Duration

The maxSessionDuration config enforces a hard limit on how long a user can stay logged in, independent of token expiry.

How it works

  1. On login: Server sets session_start cookie with current timestamp
  2. On each request: Server validates session age against maxSessionDuration
  3. On expiry: Server returns 401, UI redirects to SSO login

Config location

# server/config/with-auth.yaml
auth:
  enabled: true
  maxSessionDuration: 2m # Duration string (e.g., 30m, 1h, 24h)
  # Set to 0 or omit to disable

Difference from token expiry

Mechanism Controls Behavior on expiry
Token TTL How often tokens refresh Silent refresh via /auth/refresh
maxSessionDuration Total session lifetime Full re-authentication required

Use cases

  • Security compliance: Force re-auth every N hours regardless of activity
  • Testing: Set short duration (2m) to quickly test session expiry flow
  • Production: Set longer duration (8h, 24h) based on security requirements

Key Relationships

AccessToken TTL < maxSessionDuration  → Enables token refresh
Session TTL = maxSessionDuration      → Forces re-auth at OIDC on expiry
RefreshToken TTL > Session TTL        → Allows refresh within session

Current Default Values

Setting Value Location
Access Token TTL 60s OIDC config
ID Token TTL 60s OIDC config
Refresh Token TTL 1 day OIDC config
OIDC Session TTL 2m OIDC config
Max Session Duration 2m UI server config

Debugging

View auth logs

The Go server logs token validation:

[Auth] Setting refresh token cookie (length: X)
[JWT Validation] Token valid, expires at X (time remaining: X)

Check cookies

In browser DevTools > Application > Cookies:

  • user0, user1... - Base64 encoded user data (short-lived)
  • refresh - HttpOnly refresh token (long-lived)
  • session_start - Session start timestamp (HttpOnly)

Test endpoints

# Get OIDC discovery
curl http://localhost:8889/.well-known/openid-configuration

# Manual token refresh (requires valid refresh cookie)
curl -X GET http://localhost:8081/auth/refresh --cookie "refresh=<token>"

Related Files

  • server/server/route/auth.go - Auth routes and callbacks
  • server/server/auth/auth.go - Token validation and session management
  • server/server/config/config.go - Auth config struct
  • src/lib/utilities/auth-refresh.ts - Client-side refresh logic