mirror of
https://github.com/tomru/pfadi-bussle.git
synced 2026-03-04 06:57:12 +01:00
migrate auth from next-auth to better-auth with magic link support
Replace next-auth with better-auth, adding magic link email login as the primary auth method and GitHub OAuth as an optional social provider. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
37
pages/api/auth/[...all].ts
Normal file
37
pages/api/auth/[...all].ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { auth } from "../../../lib/auth"
|
||||
import type { NextApiRequest, NextApiResponse } from "next"
|
||||
|
||||
export const config = {
|
||||
api: {
|
||||
bodyParser: false,
|
||||
},
|
||||
}
|
||||
|
||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||
const baseUrl = process.env.BETTER_AUTH_URL || "http://localhost:3000"
|
||||
const url = new URL(req.url!, baseUrl)
|
||||
|
||||
let body: Buffer | undefined
|
||||
if (req.method !== "GET" && req.method !== "HEAD") {
|
||||
body = await new Promise<Buffer>((resolve, reject) => {
|
||||
const chunks: Buffer[] = []
|
||||
req.on("data", (chunk: Buffer) => chunks.push(chunk))
|
||||
req.on("end", () => resolve(Buffer.concat(chunks)))
|
||||
req.on("error", reject)
|
||||
})
|
||||
}
|
||||
|
||||
const webRequest = new Request(url.toString(), {
|
||||
method: req.method,
|
||||
headers: req.headers as HeadersInit,
|
||||
body: body,
|
||||
})
|
||||
|
||||
const response = await auth.handler(webRequest)
|
||||
|
||||
res.status(response.status)
|
||||
response.headers.forEach((value, key) => {
|
||||
res.setHeader(key, value)
|
||||
})
|
||||
res.end(await response.text())
|
||||
}
|
||||
Reference in New Issue
Block a user