浏览代码

Merge branch 'master' of https://git.2fi-solutions.com/derek/FPSMS-frontend

# Conflicts:
#	src/app/(main)/layout.tsx
#	src/config/authConfig.ts
production_process
MSI\2Fi 2 个月前
父节点
当前提交
af4145e426
共有 2 个文件被更改,包括 27 次插入23 次删除
  1. +24
    -21
      src/app/(main)/layout.tsx
  2. +3
    -2
      src/config/authConfig.ts

+ 24
- 21
src/app/(main)/layout.tsx 查看文件

@@ -1,5 +1,5 @@
import AppBar from "@/components/AppBar";
import { getServerSession } from "next-auth";
import { AuthOptions, getServerSession } from "next-auth";
import { authOptions, SessionWithTokens } from "@/config/authConfig";
import { redirect } from "next/navigation";
import Box from "@mui/material/Box";
@@ -11,13 +11,14 @@ import { SetupAxiosInterceptors } from "@/app/(main)/axios/axiosInstance";
import { CameraProvider } from "@/components/Cameras/CameraProvider";
import { UploadProvider } from "@/components/UploadProvider/UploadProvider";
import SessionProviderWrapper from "@/components/SessionProviderWrapper/SessionProviderWrapper";
import QrCodeScannerProvider from "@/components/QrCodeScannerProvider/QrCodeScannerProvider";

export default async function MainLayout({
children,
}: {
children: React.ReactNode;
}) {
const session = await getServerSession(authOptions) as SessionWithTokens;
const session = await getServerSession<AuthOptions, SessionWithTokens>(authOptions);

if (!session?.user) {
redirect("/login");
@@ -27,7 +28,7 @@ export default async function MainLayout({

// Verify if the session is valid
if (session) {
SetupAxiosInterceptors(session?.accessToken ?? null);
SetupAxiosInterceptors(session.accessToken);
}

return (
@@ -35,24 +36,26 @@ export default async function MainLayout({
<UploadProvider>
<CameraProvider>
<AxiosProvider>
<>
<AppBar
profileName={session.user.name!}
avatarImageSrc={session.user.image || undefined}
/>
<Box
component="main"
sx={{
marginInlineStart: { xs: 0, xl: NAVIGATION_CONTENT_WIDTH },
padding: { xs: "1rem", sm: "1.5rem", lg: "3rem" },
}}
>
<Stack spacing={2}>
<Breadcrumb />
{children}
</Stack>
</Box>
</>
<QrCodeScannerProvider>
<>
<AppBar
profileName={session.user.name!}
avatarImageSrc={session.user.image || undefined}
/>
<Box
component="main"
sx={{
marginInlineStart: { xs: 0, xl: NAVIGATION_CONTENT_WIDTH },
padding: { xs: "1rem", sm: "1.5rem", lg: "3rem" },
}}
>
<Stack spacing={2}>
<Breadcrumb />
{children}
</Stack>
</Box>
</>
</QrCodeScannerProvider>
</AxiosProvider>
</CameraProvider>
</UploadProvider>


+ 3
- 2
src/config/authConfig.ts 查看文件

@@ -3,12 +3,13 @@ import CredentialsProvider from "next-auth/providers/credentials";
import { LOGIN_API_PATH } from "./api";

export interface SessionWithTokens extends Session {
accessToken?: string;
accessToken: string | null;
refreshToken?: string;
abilities: string[];
id?: string | null
}


export const authOptions: AuthOptions = {
debug: process.env.NODE_ENV === "development",
providers: [
@@ -51,7 +52,7 @@ export const authOptions: AuthOptions = {
...session,
// Add the data from the token to the session
id: token.id as string | undefined,
accessToken: token.accessToken as string | undefined,
accessToken: token.accessToken as string | null,
refreshToken: token.refreshToken as string | undefined,
abilities: token.abilities as string[]
};


正在加载...
取消
保存