Manage encrypted sessions in Next.js with iron-session. Use for session auth, encrypted cookies, or stateless sessions without a database.
iron-session stores session data in encrypted, signed cookies. No database needed. AES-256 encryption + HMAC-SHA256 signing. Works with Next.js App Router and Express.
import { getIronSession } from 'iron-session'
import { cookies } from 'next/headers'
interface SessionData { userId?: string; role?: string; isLoggedIn: boolean }
const options = {
password: process.env.SESSION_SECRET!,
cookieName: 'myapp_session',
cookieOptions: { secure: process.env.NODE_ENV === 'production', httpOnly: true, sameSite: 'lax' as const, maxAge: 604800 },
}
export async function getSession() {
return getIronSession<SessionData>(await cookies(), options)
}
// POST /api/auth/login
const session = await getSession()
session.userId = user.id
session.role = user.role
session.isLoggedIn = true
await session.save()
// POST /api/auth/logout
const session = await getSession()
session.destroy()
export default async function DashboardPage() {
const session = await getSession()
if (!session.isLoggedIn) redirect('/login')
return <Dashboard userId={session.userId!} />
}
openssl rand -hex 32.npx skills add TerminalSkills/iron-session下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer