← back to ClawCoder
src/app/api/auth/route.ts
36 lines
import { NextRequest, NextResponse } from 'next/server'
const AUTH_USER = 'Steve'
const AUTH_PASS = 'DWSecure2024!'
const SESSION_COOKIE = 'clawcoder_session'
const THIRTY_DAYS = 30 * 24 * 60 * 60
export async function POST(request: NextRequest) {
const { username, password } = await request.json()
if (username === AUTH_USER && password === AUTH_PASS) {
const session = Buffer.from(JSON.stringify({
authenticated: true,
username,
loginTime: Date.now(),
})).toString('base64url')
const response = NextResponse.json({ ok: true })
response.cookies.set(SESSION_COOKIE, session, {
httpOnly: true,
sameSite: 'lax',
maxAge: THIRTY_DAYS,
path: '/',
})
return response
}
return NextResponse.json({ error: 'Invalid credentials' }, { status: 401 })
}
export async function DELETE() {
const response = NextResponse.json({ ok: true })
response.cookies.delete(SESSION_COOKIE)
return response
}