27 lines
755 B
TypeScript
27 lines
755 B
TypeScript
import { NextResponse } from 'next/server'
|
|
import NextAuth from '@auth/nextjs'
|
|
import GitHub from '@auth/nextjs/providers/github'
|
|
|
|
export const {
|
|
handlers: { GET, POST },
|
|
auth,
|
|
CSRF_experimental
|
|
} = NextAuth({
|
|
// @ts-ignore
|
|
providers: [GitHub],
|
|
session: { strategy: 'jwt' },
|
|
async authorized({ request, auth }: any) {
|
|
const url = request.nextUrl
|
|
|
|
if (request.method === 'POST') {
|
|
const { authToken } = (await request.json()) ?? {}
|
|
// If the request has a valid auth token, it is authorized
|
|
const valid = true
|
|
if (valid) return true
|
|
return NextResponse.json('Invalid auth token', { status: 401 })
|
|
}
|
|
|
|
// Logged in users are authenticated, otherwise redirect to login page
|
|
return !!auth
|
|
}
|
|
})
|