프론트엔드
유튜브 강좌로 프론트엔드 개발을 배우고 아이디어를 직접 개발해서 스타트업 창업을 목표로 합니다.
#Next.js 14
사용자 로그인 정보 가져오기
프로젝트 진행중 사용자 정보를 수시로 조회하게 된다. 최초에 사용자 정보를 가져와서 Header 컴포넌트에 전달해 사용하고 있다.
/app/layout.js
import Provider from "@lib/Provider";
import Header from "@components/layout/Header";
import { getCurrentUser } from "@lib/getCurrentData";
import "@style/globals.css";
export default async function RootLayout({ children }) {
const currentUser = await getCurrentUser();
return (
<html lang="kr">
<body>
<Provider>
<Header currentUser={currentUser} />
<div>{ children }</div>
</Provider>
</body>
</html>
);
}
/lib/getCurrentData.js
import { auth } from "@app/auth";
import prisma from '@prisma/prisma'
export async function getCurrentUser() {
try {
const session = await auth();
if (!session?.user?.email) {
return null;
}
const currentUser = await prisma.user.findUnique({
where: {
id: session.user.id,
},
include: {
stamps: true,
},
})
if (!currentUser) {
return null
}
return {
...currentUser,
createdAt: currentUser.createdAt.toISOString(),
updatedAt: currentUser.updatedAt.toISOString(),
emailVerified: currentUser.emailVerified?.toISOString() || null,
};
} catch (error) {
return null
}
}
채널을 구독하면 구독한 채널에 키워드를 등록할 수 있습니다.
..
Comments
키워드 내용에 대한 서로의 생각을 공유하고 댓글로 응원해주세요.
등록된 댓글이 없습니다.