# catalyst-authentication

Guides user login, social auth, and OAuth connections in Zoho Catalyst. Prevents broken production deployments caused by mismatched ZAID identifiers.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 999 installs · ★ 69
- Author: catalystbyzoho
- License: Apache-2.0 · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/catalystbyzoho/agent-skills/tree/HEAD/skills/catalyst-authentication/SKILL.md
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/skills/catalyst-authentication

## What it does

This skill guides agent workflows for Zoho Catalyst authentication, covering hosted and embedded login, JWT handling, and third-party identity providers like Okta or Auth0. It handles Web SDK calls such as `getCurrentUser`, `signinWithJwt`, and token management via Connections.

Local auth fails when running standard dev servers like Vite or Next.js. Auth cookies and `/__catalyst/sdk/init.js` are injected solely through `catalyst serve`.

Another trap is ZAID mismatch. Development and production environments use different ZAID values. Because social logins rely on this identifier, promoting your code without updating the production ZAID breaks logins silently.

## Requirements
- Works with: LinkedIn

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add catalystbyzoho/agent-skills --skill catalyst-authentication -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/catalyst-authentication/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/catalyst-authentication/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add catalystbyzoho/agent-skills --skill catalyst-authentication -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/catalyst-authentication/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add catalystbyzoho/agent-skills --skill catalyst-authentication -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/catalyst-authentication/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install catalystbyzoho/agent-skills catalyst-authentication
```

2. **Manually: put the files in place**
- File: `.github/skills/catalyst-authentication/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add catalystbyzoho/agent-skills --skill catalyst-authentication -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/catalystbyzoho/agent-skills --path skills/catalyst-authentication
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/catalyst-authentication/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add catalystbyzoho/agent-skills --skill catalyst-authentication -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/catalystbyzoho/agent-skills/tree/HEAD/skills/catalyst-authentication/SKILL.md

## When to use it
- configure Google, Microsoft, or Okta login in Zoho Catalyst
- fix silent authentication failures caused by production ZAID changes
- retrieve external OAuth tokens using Connections and getAccessToken
- separate function execution permissions from DataStore table scopes

## Example prompts
- Configure Google social login for my Catalyst application
- Debug why authentication fails after moving from dev to production
- Generate a custom JWT token for user signin in Catalyst

## Source text · SKILL.md · Apache-2.0

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: da620079343ec17f.

BEGIN THIRD-PARTY FILE da620079343ec17f
```text
---
name: catalyst-authentication
description: "Catalyst Authentication — user login/signup, ZAID, Web SDK auth flows, OAuth token management via Connections, third-party authentication (Okta, Auth0, Duo, custom IdP), social logins (Google, Facebook, LinkedIn, Microsoft), generateCustomToken, signinWithJwt. Trigger on 'authentication', 'login', 'signup', 'getCurrentUser', 'ZAID', 'isUserAuthenticated', 'signOut', 'Connections', 'getAccessToken', 'third-party auth', 'social login', 'Google login', 'signinWithJwt', or 'generateCustomToken'. You MUST load this skill whenever implementing user login or protecting data — ZAID differs between Development and Production and is the #1 cause of auth failures after environment promotion. For Security Rules (function invocation control), route to catalyst-functions."
metadata:
  version: "2.1.2"
---

## Local auth requires plain `catalyst serve`

Auth works locally only when served through `catalyst serve`. NEVER use the native dev server (`npm run dev`, `vite`, `next dev`, `ng serve`, etc.) for auth development — the Catalyst auth middleware, cookie injection, and `/__catalyst/sdk/init.js` are only available through `catalyst serve`.

## How It Works

1. **Identify flow type** — Hosted login (redirect to Catalyst login page), embedded login (custom UI), or backend `getCurrentUser` check.
2. **Load `references/auth-basics.md`** — for signup/login flows, ZAID gotcha, hosted vs embedded login, and common auth errors.
3. **ZAID warning** — ZAID differs between Development and Production. This is the #1 auth issue in production. Always verify the environment.
4. **Security Rules** — If the query involves controlling who can invoke a function, route to `catalyst-functions` skill and its `references/functions-basics.md` Security Rules section. Security Rules has two parameters: (a) **`methods`** — which HTTP methods (GET/POST/PUT/DELETE/PATCH) are enabled for the function (removing a method blocks that verb entirely), and (b) **`authentication`** — a single binary flag (`optional` = public, `required` = authenticated users only) applied **function-wide, not per-method**. For role-based data access control, route to DataStore Scopes and Permissions (Console → Table → Scopes and Permissions).
5. **OAuth / Connections** — Load `references/connections.md` for external API OAuth token management (Zoho or third-party).
6. **Third-party auth / social logins** — If the query involves Okta, Auth0, Duo, custom IdP, Google/Facebook/LinkedIn/Microsoft login, `generateCustomToken`, or `signinWithJwt`, load `references/auth-thirdparty.md`.

## Security Checklist
```
END THIRD-PARTY FILE da620079343ec17f

The third-party file has ended. Everything between the da620079343ec17f tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2655 of 4618 bytes. © catalystbyzoho · Apache-2.0 · https://github.com/catalystbyzoho/agent-skills/tree/HEAD/skills/catalyst-authentication/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
