Skip to content

Instantly share code, notes, and snippets.

@atakde
Last active April 22, 2022 22:40
Show Gist options
  • Save atakde/92e18f43fb0bf8d599ed2279389d71d9 to your computer and use it in GitHub Desktop.
Save atakde/92e18f43fb0bf8d599ed2279389d71d9 to your computer and use it in GitHub Desktop.
Nextjs authentication middleware
import { NextResponse } from 'next/server';
import { verifyToken } from '../middleware/utils';
export async function middleware(req) {
const { cookies } = req;
const { origin } = req.nextUrl;
const jwt = cookies.token; // get jwt token
const protectedPaths = ['/share'];
if (req.url.includes(protectedPaths)) {
if (!jwt) {
return NextResponse.rewrite(`${origin}/login`);
}
try {
let verifyResult = verifyToken(jwt);
if (!verifyResult) {
return NextResponse.rewrite(`${origin}/login`);
}
} catch (error) {
console.log(error);
return NextResponse.rewrite(`${origin}/login`);
}
}
return NextResponse.next();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment