Use getClaims in the middleware for faster requests (#305)
* chore(version): bump version to 2.12.1 and update auth middleware to use getClaims instead of getUser - Incremented version in package.json from 2.12.0 to 2.12.1. - Refactored middleware to replace supabase.auth.getUser() with supabase.auth.getClaims() for improved claims handling. - Updated user checks in middleware to validate claims instead of user object. * refactor(middleware): update user authentication to utilize getClaims for improved claims validation - Replaced calls to supabase.auth.getUser() with supabase.auth.getClaims() in middleware for better claims handling. - Adjusted user validation checks to ensure claims are used instead of the user object, enhancing security and consistency in authentication flow. * refactor(auth): update VerifyPage to use getClaims for user validation - Replaced the use of supabase.auth.getUser() with supabase.auth.getClaims() in the VerifyPage component for improved claims handling. - Adjusted user validation logic to check for claims instead of the user object, enhancing security and consistency in the authentication flow.
This commit is contained in:
committed by
GitHub
parent
9104ce9a2c
commit
25ab47afb1
@@ -20,7 +20,7 @@ export const config = {
|
||||
const getUser = (request: NextRequest, response: NextResponse) => {
|
||||
const supabase = createMiddlewareClient(request, response);
|
||||
|
||||
return supabase.auth.getUser();
|
||||
return supabase.auth.getClaims();
|
||||
};
|
||||
|
||||
export async function middleware(request: NextRequest) {
|
||||
@@ -104,14 +104,11 @@ async function adminMiddleware(request: NextRequest, response: NextResponse) {
|
||||
return;
|
||||
}
|
||||
|
||||
const {
|
||||
data: { user },
|
||||
error,
|
||||
} = await getUser(request, response);
|
||||
const { data, error } = await getUser(request, response);
|
||||
|
||||
// If user is not logged in, redirect to sign in page.
|
||||
// This should never happen, but just in case.
|
||||
if (!user || error) {
|
||||
if (!data?.claims || error) {
|
||||
return NextResponse.redirect(
|
||||
new URL(pathsConfig.auth.signIn, request.nextUrl.origin).href,
|
||||
);
|
||||
@@ -141,12 +138,10 @@ function getPatterns() {
|
||||
{
|
||||
pattern: new URLPattern({ pathname: '/auth/*?' }),
|
||||
handler: async (req: NextRequest, res: NextResponse) => {
|
||||
const {
|
||||
data: { user },
|
||||
} = await getUser(req, res);
|
||||
const { data } = await getUser(req, res);
|
||||
|
||||
// the user is logged out, so we don't need to do anything
|
||||
if (!user) {
|
||||
if (!data?.claims) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -168,15 +163,13 @@ function getPatterns() {
|
||||
{
|
||||
pattern: new URLPattern({ pathname: '/home/*?' }),
|
||||
handler: async (req: NextRequest, res: NextResponse) => {
|
||||
const {
|
||||
data: { user },
|
||||
} = await getUser(req, res);
|
||||
const { data } = await getUser(req, res);
|
||||
|
||||
const origin = req.nextUrl.origin;
|
||||
const next = req.nextUrl.pathname;
|
||||
|
||||
// If user is not logged in, redirect to sign in page.
|
||||
if (!user) {
|
||||
if (!data?.claims) {
|
||||
const signIn = pathsConfig.auth.signIn;
|
||||
const redirectPath = `${signIn}?next=${next}`;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user