๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“š Study Note/React

React Router dom v6 - React Protected Routes

by Jellll_y 2022. 8. 24.

React Router dom์„ ์ด์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘ 

๋กœ๊ทธ์ธ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋ณด์ด๋Š” ๊ฒฝ๋กœ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•  ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ!

๊ณ ๋ฏผํ•˜๋‹ค ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌ ํ•ด๋ด…๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ๋กœ๊ฐ€ ์žˆ๊ณ ,

 1. ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š์€ ์œ ์ €๋Š” "/todo" ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•  ๊ฒฝ์šฐ "/" ๊ฒฝ๋กœ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ•œ๋‹ค.๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ๋Š” ๊ฒฝ์šฐ

์•„๋ž˜์™€ ๊ฐ™์ด utils ํด๋”์— PrivateRoutes.jsx ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•ด์ค๋‹ˆ๋‹ค. 

Context API๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋กœ๊ทธ์ธ ์—ฌ๋ถ€๋ฅผ ๊ด€๋ฆฌํ•ด์คฌ๋Š”๋ฐ, 

์ด๋•Œ ๋กœ๊ทธ์ธ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, "/" ๊ฒฝ๋กœ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ•ด์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋กœ๊ทธ์ธ๋œ ๊ฒฝ์šฐ Outlet๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ž์‹ ๊ฒฝ๋กœ ์š”์†Œ๋ฅผ ๋ Œ๋”๋ง ํ•ด์ค๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ 

App ์ปดํฌ๋„ŒํŠธ์—์„œ Private ๊ฒฝ๋กœ์˜ ๋ผ์šฐํŠธ์— ์ƒ์„ฑํ•œ PrivateRoutes๋ฅผ ๋ถ€๋ชจ ์š”์†Œ๋กœ ์ค๋‹ˆ๋‹ค. 

2. ๋กœ๊ทธ์ธ ํ•œ ์‚ฌ์šฉ์ž๋Š” "/login" , "/join" ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•  ๊ฒฝ์šฐ "/todo"๊ฒฝ๋กœ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ•œ๋‹ค. ๋Š” ์กฐ๊ฑด์ผ ๊ฒฝ์šฐ

utils ํด๋”์— PublicRoutes.jsx ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•ด์ค๋‹ˆ๋‹ค. 

์—ฌ๊ธฐ์„œ๋„ ์œ„์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋กœ๊ทธ์ธ๋œ ๊ฒฝ์šฐ, 

"/todo" ๊ฒฝ๋กœ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ•ด์ฃผ๊ณ 

์•„๋‹Œ ๊ฒฝ์šฐ ์ž์‹ ๊ฒฝ๋กœ ์š”์†Œ๋ฅผ ๋ Œ๋”๋ง ํ•ด์ค๋‹ˆ๋‹ค. ("/login", "/join")

 

๊ทธ๋ฆฌ๊ณ 

App ์ปดํฌ๋„ŒํŠธ์—์„œ Private ๊ฒฝ๋กœ์˜ ๋ผ์šฐํŠธ์— ์ƒ์„ฑํ•œ PrivateRoutes๋ฅผ ๋ถ€๋ชจ ์š”์†Œ๋กœ ์ค๋‹ˆ๋‹ค. 

 

๋!

 

์ฒ˜์Œ์—๋Š” ๊ฐ ๊ฒฝ๋กœ๋งˆ๋‹ค ํŽ˜์ด์ง€๊ฐ€ ๋งˆ์šดํŠธ ๋  ๋•Œ ๋กœ๊ทธ์ธ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜์—ฌ ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ์—ˆ๋Š”๋ฐ,

 ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๋„ ์ปค์งˆ ๊ฒฝ์šฐ๋„ ์ƒ๊ฐํ•œ๋‹ค๋ฉด์ด ๋ฐฉ๋ฒ•์ด ๋” ๊น”๋”ํ•œ ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

์ฐธ๊ณ  The New Way To Create Protected Routes With React Router V6

https://youtu.be/2 k8 NleFjG7 I