Marketplace authentication-logic
Guide to using Better Auth for client and server-side authentication.
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/abdulsamad94/authentication-logic" ~/.claude/skills/aiskillstore-marketplace-authentication-logic && rm -rf "$T"
manifest:
skills/abdulsamad94/authentication-logic/SKILL.mdsource content
Authentication Logic
Overview
We use Better Auth (
better-auth) for identifying users.
Config
- Client:
exportslib/auth-client.ts
.authClient - Server:
exportslib/auth.ts
.auth
Client-Side Usage
Use
authClient for signing in, signing out, and checking session state in Client Components.
import { authClient } from "@/lib/auth-client"; // Sign In await authClient.signIn.email({ email, password, }); // Social Sign In await authClient.signIn.social({ provider: "google", callbackURL: "/onboarding", }); // Sign Out await authClient.signOut();
Server-Side Usage
Use
auth.api.getSession for protecting API routes or Server Actions.
import { auth } from "@/lib/auth"; import { headers } from "next/headers"; const session = await auth.api.getSession({ headers: await headers() }); if (!session) { return new Response("Unauthorized", { status: 401 }); }
AuthBar Component
- Located at
.textbook/src/components/AuthBar/index.tsx - Displays user avatar or login button.
- Fetches session from
(Next.js API route proxying Better Auth)./api/auth/session