mukey
v0.1.23
Published
Modern authentication library for Next.js
Maintainers
Readme
mukey
Modern authentication library for Next.js.
Installation
npm install mukeyQuick Start
1. Create Auth Instance
// auth.ts
import { mukey } from 'mukey'
export const auth = mukey({
baseURL: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3001',
session: {
cookieName: '__mukey_session',
expiresIn: 60 * 60 * 24 * 7, // 7 days
},
})2. Use in Server Components
// app/dashboard/page.tsx
import { auth } from '@/auth'
import { getServerSession } from 'mukey/server'
export default async function DashboardPage() {
const session = await auth.getSession()
if (!session) {
redirect('/login')
}
return <div>Hello {session.user.name}</div>
}3. Create API Route Handler
// app/api/auth/[...mukey]/route.ts
import { auth } from '@/auth'
import { toNextJsHandler } from 'mukey'
export const { GET, POST } = toNextJsHandler(auth)Features
- ✅ Server-side session management
- ✅ Cookie handling (HttpOnly, Secure, SameSite)
- ✅ Session validation
- ✅ Type-safe APIs
- ✅ Backend-first architecture
API Reference
mukey(config)
Create a Mukey authentication instance.
auth.getSession()
Get current session from backend.
auth.signIn.email(credentials)
Sign in with email/password.
auth.signUp(data)
Register new user.
auth.signOut()
Sign out current session.
getServerSession(client, config)
Get session in server components.
requireAuth(client, config, redirectTo?)
Require authentication (redirects if not authenticated).
requireRole(client, config, role, redirectTo?)
Require specific role (redirects if not authorized).
Development
# Build
npm run build
# Test
npm run test
# Lint
npm run lint