mirror of https://github.com/MaxLeiter/Drift
client: use next middleware for redirects/rewrites based on auth; make preview 100% height always
parent
594e903fe4
commit
a5e4c0ef75
@ -0,0 +1,31 @@
|
|||||||
|
import { NextFetchEvent, NextRequest, NextResponse } from 'next/server'
|
||||||
|
|
||||||
|
const PUBLIC_FILE = /.(.*)$/
|
||||||
|
|
||||||
|
export function middleware(req: NextRequest, ev: NextFetchEvent) {
|
||||||
|
const pathname = req.nextUrl.pathname
|
||||||
|
// const isPageRequest =
|
||||||
|
// !PUBLIC_FILE.test(req.nextUrl.pathname) &&
|
||||||
|
// !req.nextUrl.pathname.startsWith('/api') &&
|
||||||
|
// // header added when next/link pre-fetches a route
|
||||||
|
// !req.headers.get('x-middleware-preflight')
|
||||||
|
|
||||||
|
// If you're signed in we replace the home page with the new post page
|
||||||
|
if (pathname === '/') {
|
||||||
|
if (req.cookies['drift-token']) {
|
||||||
|
return NextResponse.rewrite(new URL(`/new`, req.url).href)
|
||||||
|
}
|
||||||
|
// If you're not signed in we redirect the new post page to the home page
|
||||||
|
} else if (pathname === '/new') {
|
||||||
|
if (!req.cookies['drift-token']) {
|
||||||
|
return NextResponse.redirect(new URL(`/`, req.url).href)
|
||||||
|
}
|
||||||
|
// If you're signed in we redirect the sign in page to the home page (which is the new page)
|
||||||
|
} else if (pathname === '/signin') {
|
||||||
|
if (req.cookies['drift-token']) {
|
||||||
|
return NextResponse.redirect(new URL(`/`, req.url).href)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NextResponse.next()
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue