NEXT.JS/Cock! 칵테일 프로젝트
[NEXT] 4. 메인페이지, 서브페이지 구현하기 / 로그아웃 구현
예글
2024. 3. 3. 22:55
일단 제일 큰 고비였다고 생각한 회원가입, 로그인 부분이 끝났으니 이제 진도만 쭉쭉 나가면 된다!!
✅ 해야할 것
1. 메인페이지 퍼블리싱
2. 서브페이지 퍼블리싱
- 레시피 페이지
- 게시판 페이지
- 마이페이지
3. 로그아웃
1️⃣ 메인페이지 퍼블리싱
1. 메인페이지 ('/')

- 추천 레시피, TOP10 레시피 누르면 레시피 페이지로 이동
2️⃣ 서브페이지 퍼블리싱
1. 레시피 페이지 ('/recipe')

- 더미데이터로 아이디만 따로 만들어서 레시피를 클릭하면 상세페이지로 이동하게끔 하였다.
2. 레시피 상세페이지 ('/recipe/${id}')

3. 게시판 페이지 ('/board')

- 게시판 페이지도 마찬가지로 게시글을 클릭하면 상세페이지로 이동하게끔 하였다
4. 게시판 상세페이지 ('/board/${id})

5. 마이페이지 ('/mypage')

3️⃣ 로그아웃
"use client";
import * as styles from "./index.css";
import { useRouter } from "next/navigation";
import { signOut, useSession } from "next-auth/react";
const EditInfo = () => {
const { data: session } = useSession();
const user = session?.user;
...
const onLogout = () => {
signOut();
alert("로그아웃이 완료되었습니다.");
router.push('/');
};
return (
<div className={styles.root}>
...
{/* 로그아웃 버튼 */}
<div className={styles.logOutBox}>
<p onClick={onLogout}>로그아웃</p>
</div>
</div>
);
};
export default EditInfo;
- next-auth에서 제공해주는 signOut을 쓰니까 그냥 바로 되네? 대박..
- 이래서 다들 next-auth를 많이 쓰나보다,,

- 콘솔을 보면 유저 정보가 잘 보이는 것을 알 수 있다
- 사람 이미지도 까만색!

- 로그아웃을 클릭하면 alert 창이 뜨면서 로그아웃이 완료되었다고 뜬다

- 확인을 누르면 사람이미지가 흰색이 되면서 유저 정보는 null로 바뀐다!
- 근데 router.push('/')를 해도 메인페이지로 못 가는데 이걸 어떻게 해결하면 좋지,,
- 고민이 더 필요하다....