@stackwright-pro/auth-nextjs
v0.1.0
Published
Next.js adapter for Stackwright Pro authentication
Readme
@stackwright-pro/auth-nextjs
Next.js adapter for Stackwright Pro authentication.
Installation
pnpm add @stackwright-pro/auth-nextjsUsage
Middleware (Route Protection)
// middleware.ts
import { createAuthMiddleware } from '@stackwright-pro/auth-nextjs';
import { sessionManager, rbacEngine, authConfig } from './lib/auth';
export default createAuthMiddleware({
authConfig,
sessionManager,
rbacEngine,
cookieName: 'my_session',
loginUrl: '/login',
unauthorizedUrl: '/403',
});
export const config = {
matcher: ['/((?!_next|api/auth|login).*)'],
};Protected API Routes
// pages/api/equipment/[id].ts
import { protectedRoute } from '@stackwright-pro/auth-nextjs';
import { sessionManager } from '@/lib/auth';
export default protectedRoute(
async (req, res, session) => {
const equipment = await getEquipment(req.query.id);
res.json(equipment);
},
{
sessionManager,
roles: ['ANALYST', 'ADMIN'],
}
);Cookie Utilities
// pages/api/auth/login.ts
import { setSessionCookie } from '@stackwright-pro/auth-nextjs';
export default async function handler(req, res) {
const session = await authenticateUser(req.body);
const jwt = await sessionManager.serialize(session);
setSessionCookie(res, jwt, {
maxAge: 900, // 15 minutes
});
res.json({ success: true });
}