일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Kotlin else if
- Python Class
- Python
- 다중조건문
- Kotlin 조건문
- 파이썬 클래스
- 희망
- Kotlin 클래스
- Kotlin 클래스 속성정의
- 클래스 속성
- NextJs
- 넥스트js
- 강제 타입변환
- 파이썬 장고
- 성공
- Kotlin If
- Variable declaration
- Kotlin Class
- django virtualenv
- activate 오류
- github
- 도전
- 파이썬 반복문
- 파이썬
- python Django
- 장고 가상환경
- git
- 파이썬 제어문
- 자바 기본타입
- 좋은글
Archives
- Today
- Total
키모스토리
#8. Auth & Guest Links 본문
반응형
로그인 세션을 이용한 조건부 Links 구현
1. 유효한 로그인 유저인지 검증
/src/lib/getAuthUser.js
header -> cookies -> session 정보를 읽어서 jwt 복호화 한 후 올바른 세션값인지 확인 후 로그인 정보 리턴
import { cookies } from "next/headers";
import { decrypt } from "./session";
export default async function getAuthUser() {
// Get Cookies
const coookieStore = await cookies();
const session = coookieStore.get("session")?.value;
// console.log("session=", session);
if (session) {
const user = await decrypt(session);
return user;
}
// 세션이 없으면 null을 반환합니다.
return null;
}
2. Navigation 페이지에서 로그인 정보를 확인 후 로그인 여부에 따른 링크구현
로그아웃 버튼의 경우 form action 에 아래 로그아웃 처리 action 함수로 링크
import getAuthUser from "@/lib/getAuthUser";
import NavLink from "./NavLink"
import { logout } from "@/actions/auth";
export default async function Navigation() {
const authUser = await getAuthUser();
// console.log("authUser=", authUser);
return (
<nav>
<NavLink label="Home" href="/" />
{authUser ?
(
<div className="flex items-center">
<NavLink label="Dashboard" href="/dashboard" />
<form action={logout}>
<button className="nav-link">Logout</button>
</form>
</div>
) :
(
<div className="flex items-center">
<NavLink label="Register" href="/register" />
<NavLink label="Login" href="/login" />
</div>
)}
</nav>
)
}
3. 로그아웃 처리
/src/actions/auth.js
// 로그아웃 요청을 처리하는 서버 액션입니다.
export async function logout() {
const coookieStore = await cookies();
coookieStore.delete('session');
redirect("/");
}
반응형
'Web Devlopment > Next-Blog Project' 카테고리의 다른 글
#10. Read Blog Posts (home) (0) | 2025.04.05 |
---|---|
#9. Create Blog Posts (0) | 2025.04.05 |
#7. Login (0) | 2025.04.05 |
#6. Active Links (0) | 2025.04.05 |
#5. server-only (0) | 2025.04.05 |