feat: 유저 세션 체크 로직 추가
This commit is contained in:
parent
813c756727
commit
35a7f28ac9
@ -1,7 +1,10 @@
|
|||||||
import Hero from '@/components/Hero'
|
import Hero from '@/components/Hero'
|
||||||
import Archive from '@/components/community/Archive'
|
import Archive from '@/components/community/Archive'
|
||||||
|
import { initCheck } from '@/util/session-util'
|
||||||
|
|
||||||
|
export default async function CommunityArchivePage() {
|
||||||
|
await initCheck()
|
||||||
|
|
||||||
export default function CommunityArchivePage() {
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Hero title="자료 다운로드" />
|
<Hero title="자료 다운로드" />
|
||||||
|
|||||||
@ -1,7 +1,10 @@
|
|||||||
import Hero from '@/components/Hero'
|
import Hero from '@/components/Hero'
|
||||||
import Faq from '@/components/community/Faq'
|
import Faq from '@/components/community/Faq'
|
||||||
|
import { initCheck } from '@/util/session-util'
|
||||||
|
|
||||||
|
export default async function CommunityFaqPage() {
|
||||||
|
await initCheck()
|
||||||
|
|
||||||
export default function CommunityFaqPage() {
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Hero title="FAQ" />
|
<Hero title="FAQ" />
|
||||||
|
|||||||
@ -1,7 +1,10 @@
|
|||||||
import Hero from '@/components/Hero'
|
import Hero from '@/components/Hero'
|
||||||
import Notice from '@/components/community/Notice'
|
import Notice from '@/components/community/Notice'
|
||||||
|
import { initCheck } from '@/util/session-util'
|
||||||
|
|
||||||
|
export default async function CommunityNoticePage() {
|
||||||
|
await initCheck()
|
||||||
|
|
||||||
export default function CommunityNoticePage() {
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Hero title="공지사항" />
|
<Hero title="공지사항" />
|
||||||
|
|||||||
@ -1,6 +1,9 @@
|
|||||||
import Intro from '@/components/Intro'
|
import Intro from '@/components/Intro'
|
||||||
|
import { initCheck } from '@/util/session-util'
|
||||||
|
|
||||||
|
export default async function IntroPage() {
|
||||||
|
await initCheck()
|
||||||
|
|
||||||
export default function IntroPage() {
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="container mx-auto p-4 m-4 border">
|
<div className="container mx-auto p-4 m-4 border">
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import { LocaleProvider } from './LocaleProvider'
|
|||||||
|
|
||||||
export default function LocaleLayout({ children }) {
|
export default function LocaleLayout({ children }) {
|
||||||
const locale = useCurrentLocale()
|
const locale = useCurrentLocale()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<LocaleProvider locale={locale} fallback={''}>
|
<LocaleProvider locale={locale} fallback={''}>
|
||||||
|
|||||||
@ -1,7 +1,10 @@
|
|||||||
import Hero from '@/components/Hero'
|
import Hero from '@/components/Hero'
|
||||||
import Plan from '@/components/management/Plan'
|
import Plan from '@/components/management/Plan'
|
||||||
|
import { initCheck } from '@/util/session-util'
|
||||||
|
|
||||||
|
export default async function ManagementPlanPage() {
|
||||||
|
await initCheck()
|
||||||
|
|
||||||
export default function ManagementPlanPage() {
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Hero title="도면관리" />
|
<Hero title="도면관리" />
|
||||||
|
|||||||
@ -1,7 +1,10 @@
|
|||||||
import Hero from '@/components/Hero'
|
import Hero from '@/components/Hero'
|
||||||
import Stuff from '@/components/management/Stuff'
|
import Stuff from '@/components/management/Stuff'
|
||||||
|
import { initCheck } from '@/util/session-util'
|
||||||
|
|
||||||
|
export default async function ManagementStuffPage() {
|
||||||
|
await initCheck()
|
||||||
|
|
||||||
export default function ManagementStuffPage() {
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Hero title="물건관리" />
|
<Hero title="물건관리" />
|
||||||
|
|||||||
@ -1,7 +1,10 @@
|
|||||||
import Hero from '@/components/Hero'
|
import Hero from '@/components/Hero'
|
||||||
import Company from '@/components/master/Company'
|
import Company from '@/components/master/Company'
|
||||||
|
import { initCheck } from '@/util/session-util'
|
||||||
|
|
||||||
|
export default async function MasterCompanyPage() {
|
||||||
|
await initCheck()
|
||||||
|
|
||||||
export default function MasterCompanyPage() {
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Hero title="회사정보 조회" />
|
<Hero title="회사정보 조회" />
|
||||||
|
|||||||
@ -1,7 +1,10 @@
|
|||||||
import Hero from '@/components/Hero'
|
import Hero from '@/components/Hero'
|
||||||
import Price from '@/components/master/Price'
|
import Price from '@/components/master/Price'
|
||||||
|
import { initCheck } from '@/util/session-util'
|
||||||
|
|
||||||
|
export default async function MasterPricePage() {
|
||||||
|
await initCheck()
|
||||||
|
|
||||||
export default function MasterPricePage() {
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Hero title="가격 마스터 조회" />
|
<Hero title="가격 마스터 조회" />
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import MainPage from '@/components/Main'
|
|
||||||
import { getSession } from '@/lib/authActions'
|
import { getSession } from '@/lib/authActions'
|
||||||
import { getCurrentLocale } from '@/locales/server'
|
import { getCurrentLocale } from '@/locales/server'
|
||||||
|
import MainPage from '@/components/Main'
|
||||||
|
|
||||||
export default async function page() {
|
export default async function page() {
|
||||||
const session = await getSession()
|
const session = await getSession()
|
||||||
|
|||||||
@ -1,6 +1,14 @@
|
|||||||
import Playground from '@/components/Playground'
|
import Playground from '@/components/Playground'
|
||||||
|
import { initCheck } from '@/util/session-util'
|
||||||
|
|
||||||
|
export default async function PlaygroundPage() {
|
||||||
|
// const { session } = await checkSession()
|
||||||
|
|
||||||
|
// if (!session.isLoggedIn) {
|
||||||
|
// redirect('/login')
|
||||||
|
// }
|
||||||
|
await initCheck()
|
||||||
|
|
||||||
export default function PlaygroundPage() {
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Playground />
|
<Playground />
|
||||||
|
|||||||
@ -1,7 +1,10 @@
|
|||||||
import Hero from '@/components/Hero'
|
import Hero from '@/components/Hero'
|
||||||
import Roof from '@/components/Roof'
|
import Roof from '@/components/Roof'
|
||||||
|
import { initCheck } from '@/util/session-util'
|
||||||
|
|
||||||
|
export default async function RoofPage() {
|
||||||
|
await initCheck()
|
||||||
|
|
||||||
export default function RoofPage() {
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Hero title="Drawing on canvas 2D Roof" />
|
<Hero title="Drawing on canvas 2D Roof" />
|
||||||
|
|||||||
@ -1,17 +1,9 @@
|
|||||||
'use client'
|
|
||||||
|
|
||||||
import Roof2 from '@/components/Roof2'
|
import Roof2 from '@/components/Roof2'
|
||||||
import { textState } from '@/store/canvasAtom'
|
|
||||||
import { useEffect } from 'react'
|
|
||||||
import { useRecoilState } from 'recoil'
|
|
||||||
import RoofSelect from '@/app/[locale]/roof2/RoofSelect'
|
import RoofSelect from '@/app/[locale]/roof2/RoofSelect'
|
||||||
|
import { initCheck } from '@/util/session-util'
|
||||||
|
|
||||||
export default function Roof2Page() {
|
export default async function Roof2Page() {
|
||||||
const [text, setText] = useRecoilState(textState)
|
await initCheck()
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
console.log(text)
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
'use client'
|
||||||
|
|
||||||
import { useCanvas } from '@/hooks/useCanvas'
|
import { useCanvas } from '@/hooks/useCanvas'
|
||||||
import { useEffect, useState, useRef } from 'react'
|
import { useEffect, useState, useRef } from 'react'
|
||||||
import { Mode, useMode } from '@/hooks/useMode'
|
import { Mode, useMode } from '@/hooks/useMode'
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import 'ag-grid-community/styles/ag-grid.css'
|
|||||||
import 'ag-grid-community/styles/ag-theme-quartz.css'
|
import 'ag-grid-community/styles/ag-theme-quartz.css'
|
||||||
|
|
||||||
export default function QGrid(props) {
|
export default function QGrid(props) {
|
||||||
console.log('QGrid props:', props)
|
|
||||||
const { gridData, gridColumns, isPageable = true } = props
|
const { gridData, gridColumns, isPageable = true } = props
|
||||||
const [count, setCount] = useState(0)
|
const [count, setCount] = useState(0)
|
||||||
const [clickedCount, setClickedCount] = useState(0)
|
const [clickedCount, setClickedCount] = useState(0)
|
||||||
|
|||||||
@ -20,7 +20,8 @@ export async function getSession() {
|
|||||||
|
|
||||||
console.log('session:', session)
|
console.log('session:', session)
|
||||||
if (!session.isLoggedIn) {
|
if (!session.isLoggedIn) {
|
||||||
session.isLoggedIn = defaultSession.isLoggedIn
|
// session.isLoggedIn = defaultSession.isLoggedIn
|
||||||
|
session.isLoggedIn = false
|
||||||
}
|
}
|
||||||
|
|
||||||
return session
|
return session
|
||||||
@ -35,24 +36,20 @@ export async function login(formData) {
|
|||||||
console.log('id:', userId)
|
console.log('id:', userId)
|
||||||
console.log('password:', password)
|
console.log('password:', password)
|
||||||
|
|
||||||
// const user = {
|
// const loginUser = await getUserByIdAndPassword({ userId, password })
|
||||||
// id: 1,
|
const loginUser = {
|
||||||
// name: 'jinsoo Kim',
|
id: 1,
|
||||||
// email: 'jinsoo.kim@example.com',
|
userId: 'test123',
|
||||||
// }
|
name: 'jinsoo Kim',
|
||||||
const loginUser = await getUserByIdAndPassword({ userId, password })
|
email: 'jinsoo.kim@example.com',
|
||||||
console.log('loginUser:', loginUser)
|
}
|
||||||
|
|
||||||
if (!loginUser) {
|
if (!loginUser) {
|
||||||
throw Error('Wrong Credentials!')
|
throw Error('Wrong Credentials!')
|
||||||
}
|
}
|
||||||
|
|
||||||
// session.id = user.id
|
session.name = loginUser.USER_ID
|
||||||
// session.email = user.email
|
session.email = loginUser.SALE_STORE_ID
|
||||||
session.userId = loginUser.USER_ID
|
|
||||||
session.saleStoreId = loginUser.SALE_STORE_ID
|
|
||||||
session.name = loginUser.NAME
|
|
||||||
session.mail = loginUser.MAIL
|
|
||||||
session.isLoggedIn = true
|
session.isLoggedIn = true
|
||||||
console.log('session:', session)
|
console.log('session:', session)
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,4 @@
|
|||||||
export const defaultSession = {
|
export const defaultSession = {}
|
||||||
userId: null,
|
|
||||||
saleStoreId: null,
|
|
||||||
name: null,
|
|
||||||
mail: null,
|
|
||||||
isLoggedIn: false,
|
|
||||||
}
|
|
||||||
|
|
||||||
export const sessionOptions = {
|
export const sessionOptions = {
|
||||||
password: process.env.SESSION_SECRET,
|
password: process.env.SESSION_SECRET,
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
'use server'
|
'use server'
|
||||||
|
|
||||||
|
import { getSession } from './authActions'
|
||||||
|
|
||||||
const { PrismaClient } = require('@prisma/client')
|
const { PrismaClient } = require('@prisma/client')
|
||||||
|
|
||||||
const prisma = new PrismaClient()
|
const prisma = new PrismaClient()
|
||||||
@ -29,3 +31,11 @@ export async function getUsers() {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function checkSession() {
|
||||||
|
const session = await getSession()
|
||||||
|
|
||||||
|
return {
|
||||||
|
session,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -30,7 +30,7 @@ const CanvasWithContextMenu = forwardRef(({ canvasProps }, ref) => {
|
|||||||
document.addEventListener('click', handleOutsideClick)
|
document.addEventListener('click', handleOutsideClick)
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
canvasProps.upperCanvasEl.removeEventListener('contextmenu', handleContextMenu)
|
// canvasProps.upperCanvasEl.removeEventListener('contextmenu', handleContextMenu)
|
||||||
document.removeEventListener('click', handleClick)
|
document.removeEventListener('click', handleClick)
|
||||||
document.removeEventListener('click', handleOutsideClick)
|
document.removeEventListener('click', handleOutsideClick)
|
||||||
}
|
}
|
||||||
|
|||||||
10
src/util/session-util.js
Normal file
10
src/util/session-util.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import { checkSession } from '@/lib/user'
|
||||||
|
import { redirect } from 'next/navigation'
|
||||||
|
|
||||||
|
export const initCheck = async () => {
|
||||||
|
const { session } = await checkSession()
|
||||||
|
|
||||||
|
if (!session.isLoggedIn) {
|
||||||
|
redirect('/login')
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user