import {
convexAuthNextjsMiddleware,
createRouteMatcher,
isAuthenticatedNextjs,
nextjsMiddlewareRedirect,
convexAuthNextjsToken,
} from '@convex-dev/auth/nextjs/server'
const isSignInPage = createRouteMatcher(['/login'])
const isProtectedRoute = createRouteMatcher(['/app(.*)'])
export default convexAuthNextjsMiddleware((request) => {
if (isSignInPage(request) && isAuthenticatedNextjs()) {
return nextjsMiddlewareRedirect(request, '/app')
}
if (isProtectedRoute(request) && !isAuthenticatedNextjs()) {
return nextjsMiddlewareRedirect(request, '/login')
}
})
export const config = {
// The following matcher runs middleware on all routes
// except static assets.
matcher: ['/((?!.*\\..*|_next).*)', '/', '/(api)(.*)'],
}
import {
convexAuthNextjsMiddleware,
createRouteMatcher,
isAuthenticatedNextjs,
nextjsMiddlewareRedirect,
convexAuthNextjsToken,
} from '@convex-dev/auth/nextjs/server'
const isSignInPage = createRouteMatcher(['/login'])
const isProtectedRoute = createRouteMatcher(['/app(.*)'])
export default convexAuthNextjsMiddleware((request) => {
if (isSignInPage(request) && isAuthenticatedNextjs()) {
return nextjsMiddlewareRedirect(request, '/app')
}
if (isProtectedRoute(request) && !isAuthenticatedNextjs()) {
return nextjsMiddlewareRedirect(request, '/login')
}
})
export const config = {
// The following matcher runs middleware on all routes
// except static assets.
matcher: ['/((?!.*\\..*|_next).*)', '/', '/(api)(.*)'],
}