I need to code this:
TypeScript
export default authMiddleware({
publicRoutes: ['/site', '/api/uploadthing'],
async beforeAuth(auth, req) {},
async afterAuth(auth, req) {
//rewrite for domains
const url = req.nextUrl
const searchParams = url.searchParams.toString()
let hostname = req.headers
const pathWithSearchParams = `${url.pathname}${
searchParams.length > 0 ? `?${searchParams}` : ''
}`
//if subdomain exists
const customSubDomain = hostname
.get('host')
?.split(`${process.env.NEXT_PUBLIC_DOMAIN}`)
.filter(Boolean)[0]
if (customSubDomain) {
return NextResponse.rewrite(
new URL(`/${customSubDomain}${pathWithSearchParams}`, req.url)
)
}
if (url.pathname === '/sign-in' || url.pathname === '/sign-up') {
return NextResponse.redirect(new URL(`/agency/sign-in`, req.url))
}
if (
url.pathname === '/' ||
(url.pathname === '/site' && url.host === process.env.NEXT_PUBLIC_DOMAIN)
) {
return NextResponse.rewrite(new URL('/site', req.url))
}
if (
url.pathname.startsWith('/agency') ||
url.pathname.startsWith('/subaccount')
) {
return NextResponse.rewrite(new URL(`${pathWithSearchParams}`, req.url))
}
},
})
But because the authMiddleware was changed to clerkMiddleware(), I have no idea how to redo that all. Can anyone help me please?
(And yes, Im trying to rebuild the Plura SaaS Website Builder, by the tutorial of Web Prodigies. Even though his video isnt old, I still struggle with the new clerk Syntax)
I tried to find new "names" for functions like "beforeAuth()" and after "afterAuth", but no hope