瀏覽代碼

middleware related

feature/axios_provider
MSI\derek 6 月之前
父節點
當前提交
8aad513c2d
共有 3 個文件被更改,包括 38 次插入11 次删除
  1. +12
    -0
      src/authorties.ts
  2. +16
    -11
      src/middleware.ts
  3. +10
    -0
      src/routes.ts

+ 12
- 0
src/authorties.ts 查看文件

@@ -0,0 +1,12 @@

export const [
VIEW_USER,
MAINTAIN_USER,
VIEW_GROUP,
MAINTAIN_GROUP,
] = [
"VIEW_USER",
"MAINTAIN_USER",
"VIEW_GROUP",
"MAINTAIN_GROUP",
]

+ 16
- 11
src/middleware.ts 查看文件

@@ -1,21 +1,26 @@
import { NextRequestWithAuth, withAuth } from "next-auth/middleware";
import { authOptions } from "@/config/authConfig";
import { NextFetchEvent, NextResponse } from "next/server";
import { PRIVATE_ROUTES } from "./routes";

const PRIVATE_ROUTES = [
"/analytics",
"/dashboard",
"/home",
"/invoice",
"/projects",
"/tasks",
"/settings",
"/material",
];
const LANG_QUERY_PARAM = "lang";

const authMiddleware = withAuth({
pages: authOptions.pages,
callbacks: {
authorized: ({ req, token }) => {
if (!Boolean(token)) {
return Boolean(token)
}
// example
// const abilities = token!.abilities as string[]
// if (req.nextUrl.pathname.endsWith('/user') && 'abilities dont hv view/maintain user') {
// return false
// }
return true
}
}
});

export default async function middleware(
@@ -36,4 +41,4 @@ export default async function middleware(
return PRIVATE_ROUTES.some((route) => req.nextUrl.pathname.startsWith(route))
? await authMiddleware(req, event) // Let auth middleware handle response
: NextResponse.next(); // Return normal response
}
}

+ 10
- 0
src/routes.ts 查看文件

@@ -0,0 +1,10 @@
export const PRIVATE_ROUTES = [
"/analytics",
"/dashboard",
"/home",
"/invoice",
"/projects",
"/tasks",
"/settings",
"/material",
];

Loading…
取消
儲存