diff --git a/package.json b/package.json index 8c161c53..301cb02f 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@types/react-dom": "^18.0.4", "axios": "^0.25.0", "bootstrap": "^5.1.3", - "buffer": "^6.0.3", + "jwt-decode": "^3.1.2", "cd": "^0.3.3", "dayjs": "^1.10.7", "exceljs": "^4.3.0", diff --git a/src/middleware.ts b/src/middleware.ts index 139ca77d..565c19d5 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -1,6 +1,6 @@ import {NextRequest, NextResponse } from 'next/server' import { allowedPermissions } from './utils/constants' -import {Buffer} from 'buffer/'; +import jwt_decode from "jwt-decode"; //middleware should run for these router paths @@ -16,10 +16,11 @@ export async function middleware(request: NextRequest) { { let decodedTokenJson = decodeJwt(request.cookies.get('next-auth.session-token')); let allUserRoles =''; - if(decodedTokenJson && decodedTokenJson.userRoles) - allUserRoles = decodedTokenJson.userRoles; + if(decodedTokenJson )//&& decodedTokenJson.userRoles) + allUserRoles = JSON.stringify(decodedTokenJson);//.userRoles; if (allUserRoles && allUserRoles.length > 0) { let userRoles = allUserRoles && allUserRoles?.length > 0 && JSON.parse(allUserRoles) + userRoles = JSON.parse(userRoles.userRoles); if (userRoles && userRoles.length > 0) { let loggedInUserInfo = userRoles[0].personIdentifier; //should be reverted after testing @@ -106,12 +107,13 @@ export async function middleware(request: NextRequest) { return res; } function decodeJwt(token:any) { - var base64Payload = token.split(".")[1]; - var payloadBuffer = Buffer.from(base64Payload, "base64"); - return JSON.parse(payloadBuffer.toString()); + //let base64Payload = token.split(".")[1]; + //let payloadBuffer = Buffer.from(base64Payload, "base64"); + //return JSON.parse(payloadBuffer.toString()); + return jwt_decode(token); } function redirectToLandingPage(request:NextRequest,pathName:any){ const redirectedUrl = request.nextUrl.clone() redirectedUrl.pathname =pathName; return NextResponse.redirect(redirectedUrl); -} \ No newline at end of file +}