Skip to content

Refactor api endpoints#79

Open
javiert-okta wants to merge 8 commits intostep-four-componentfrom
refactor-api-endpoints
Open

Refactor api endpoints#79
javiert-okta wants to merge 8 commits intostep-four-componentfrom
refactor-api-endpoints

Conversation

@javiert-okta
Copy link
Contributor

@javiert-okta javiert-okta commented Jan 20, 2026

By submitting a PR to this repository, you agree to the terms within the Auth0 Code of Conduct. Please see the contributing guidelines for how to create and submit a high-quality PR for this repo.

Description

The following PR updates all endpoints in the app to use TypeScript, NextRequest, NextResponse and Next cookies.

Testing

The endpoints need to be tested to ensure the expected output and error handling are correct:

  • /api/auth_data
  • /api/callback
  • /api/code-to-token
  • /api/discover
  • /api/validate

Checklist

  • I have added documentation for new/changed functionality in this PR or in auth0.com/docs
  • All active GitHub checks for tests, formatting, and security are passing
  • The correct base branch is being used, if not the default branch

@github-actions
Copy link

path: "/",
sameSite: "lax",
});
return NextResponse.redirect("/", { status: 302 });
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

URL needs to be absolute, https://nextjs.org/docs/pages/api-reference/functions/next-response#redirect

NextResponse.redirect(new URL("/", request.url), { status: 302 });

});
}

return NextResponse.redirect("/", { status: 302 });
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again NextResponse.redirect(new URL("/", request.url), { status: 302 });

return true;
};

export async function GET(request: NextRequest) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GET requests typically don't have a body (request.json()), should this be a POST api route?

"oauth2.googleapis.com",
]);

function isAllowedHostname(hostname) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No type annotations :

function isAllowedHostname(hostname: string): boolean {
  return ALLOWED_HOSTNAMES.has(hostname);
}

@@ -0,0 +1,116 @@
import { NextRequest, NextResponse } from "next/server";
import jose from "node-jose";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This library hasn't been updated, let's use https://github.com/panva/jose

};

return NextResponse.json({ result: result }, { status: 200 });
} catch (error) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing type annotation

@@ -0,0 +1,93 @@
import { NextResponse, NextRequest } from "next/server";
import { Validator } from "jsonschema";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe replace the older jsonschema lib with something more modern like zod?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants