Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions client/src/proxy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,20 @@ async function refreshTokenMiddleware (refreshToken : string) : Promise<boolean>

export async function proxy (request : NextRequest) {
try {
const accessTokenSecret = process.env.JWT_ACCESS_SECRET || process.env.ACCESS_TOKEN_SECRET;

if(!accessTokenSecret){
console.error("Missing JWT_ACCESS_SECRET/ACCESS_TOKEN_SECRET in ph-client runtime environment");
}

const { pathname } = request.nextUrl; // eg /dashboard, /admin/dashboard, /doctor/dashboard
const pathWithQuery = `${pathname}${request.nextUrl.search}`;
const accessToken = request.cookies.get("accessToken")?.value;
const refreshToken = request.cookies.get("refreshToken")?.value;

const decodedAccessToken = accessToken && jwtUtils.verifyToken(accessToken, process.env.JWT_ACCESS_SECRET as string).data;
const decodedAccessToken = accessToken && accessTokenSecret && jwtUtils.verifyToken(accessToken, accessTokenSecret).data;

const isValidAccessToken = accessToken && jwtUtils.verifyToken(accessToken, process.env.JWT_ACCESS_SECRET as string).success;
const isValidAccessToken = Boolean(accessToken && accessTokenSecret && jwtUtils.verifyToken(accessToken, accessTokenSecret).success);

let userRole: UserRole | null = null;

Expand All @@ -45,7 +51,7 @@ export async function proxy (request : NextRequest) {


//proactively refresh token if refresh token exists and access token is expired or about to expire
if (isValidAccessToken && refreshToken && (await isTokenExpiringSoon(accessToken))){
if (isValidAccessToken && accessToken && refreshToken && (await isTokenExpiringSoon(accessToken))){
const requestHeaders = new Headers(request.headers);

const response = NextResponse.next({
Expand Down
3 changes: 3 additions & 0 deletions docker-compose.prod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ services:
image: ${REGISTRY}/${IMAGE_NAMESPACE}/ph-healthcare-client:${IMAGE_TAG}
container_name: ph-client
restart: unless-stopped
environment:
JWT_ACCESS_SECRET: ${JWT_ACCESS_SECRET}
ACCESS_TOKEN_SECRET: ${JWT_ACCESS_SECRET}
depends_on:
- ph-server
networks:
Expand Down
Loading