inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[Renewal] Tạo NodeBird SNS bằng React

Tạo dữ liệu giả thực tế với kẻ giả mạo

특정 페이지 접근을 막고 싶을 때

104

Eric J

12 câu hỏi đã được viết

0

강의에서 프로필 페이지 접근을 막기 위해 useEffect + redirect 패턴을 사용해주셨는데요,

 

특정 페이지 접근을 막는 좀 더 고차원적인 방법을 고민해보신 경험이 있는지 궁금합니다

 

현재 방식은 useEffect라 해당 페이지 한번은 렌더링되다보니, 접근 자체를 막는게 아니라 한번 갔다가 돌아오는 식이라 아쉬운 부분이 있습니다

react redux node.js express next.js

Câu trả lời 2

0

zerocho

Ai 인턴 말대로 넥스트의 미들웨어에서 접근제어를 하는 것이 제일 좋습니다

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. Eric J님.

특정 페이지에 대한 접근을 막는 방법에 대한 더 고차원적인 접근 방법을 찾고 계시는군요. 말씀하신 기존 방식은 클라이언트 사이드에서 처리하기 때문에 페이지가 한번 로드된 후에야 조건에 따라 리다이렉션됩니다. 이로 인해 보안 및 최적화 측면에서 아쉬운 점이 있을 수 있습니다. 이에 대한 해결책으로 서버사이드 렌더링(SSR) 또는 미들웨어를 활용하는 방법을 추천드립니다.

서버사이드 렌더링을 활용한 접근 제한:
1. getServerSideProps 사용: 페이지를 서버 사이드에서 렌더링할 때 사용자 인증 상태를 확인하고, 인증되지 않은 사용자에게는 다른 페이지로 리다이렉트하는 방법입니다. 이 방법은 페이지가 클라이언트에 전달되기 전에 인증 여부를 확인할 수 있기 때문에 보안 측면에서 유리합니다.
“`javascript
export async function getServerSideProps(context) {
const { req, res } = context;
const isAuthenticated = // Fetch authentication state;

  if (!isAuthenticated) {
    res.writeHead(302, { Location: '/login' });
    res.end();
    return { props: {} }; 
  }

  return { props: {} };
}
```

미들웨어를 통한 접근 제한:
2. Custom Middleware 구현: Next.js에서는 미들웨어를 통해 요청에 개입하여 특정 조건을 만족하지 않는 경우 페이지 접근 자체를 제한할 수 있습니다. 미들웨어는 사용자 요청을 인터셉트하여 검증할 수 있기 때문에, 비로그인 사용자에 대한 접근을 효과적으로 차단할 수 있습니다.

관련 질문 및 더 많은 정보를 원하시면 아래 링크들을 참고하세요:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

넥스트 버젼 질문

0

79

2

로그인시 401 Unauthorized 오류가 뜹니다

0

90

1

무한 스크롤 중 스크롤 튐 현상

0

177

1

createGlobalStyle의 위치와 영향범위

0

97

2

인라인 스타일 리렌더링 관련

0

93

2

vsc 에서 npm init 설치시 오류

0

148

2

nextjs 15버전 사용 가능할까요?

0

160

1

화면 새로고침 문의

0

123

1

RTK에서 draft, state 차이가 있나요?

0

155

2

Next 14 사용해도 될까요?

0

452

1

next, node 버전 / 폴더 구조 질문 드립니다.

0

349

1

url 오류 질문있습니다

0

211

1

ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out

0

375

1

sudo certbot --nginx 에러

0

1281

2

Minified React error 콘솔에러 (hydrate)

0

470

1

카카오 공유했을 때 이전에 작성했던 글이 나오는 버그

0

248

1

프론트서버 배포 후 EADDRINUSE에러 발생

0

329

1

npm run build 에러

0

519

1

front 서버 npm run build 중에 발생한 에러들

0

383

1

서버 실행하고 브라우저로 들어갔을때 404에러

0

338

2

css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.

0

289

1

팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.

0

242

2

해시태그 검색에서 throttle에 관해 질문있습니다.

0

202

1

full reload 될때는 서버 데이터를 호출하는데 그 이후로 새로고침할대는 호출하지 않아서 답답합니다

0

293

2