일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- fetch
- styled components
- nextjs 설치
- react typescript
- There isn’t anything to compare
- input type=file
- react
- nextjs
- npm styled-reset
- createGlobalStyle
- github
- CSS
- API token
- Git
- API 토큰
- ngrok실행
- rewrites
- nextjs .env
- github io
- git lab
- react env
- icon
- typescript react
- bootstrap
- ngrok설치
- dart 변수
- 컨디셔널 렌더링
- getModifierState
- next.js css
- SCSS
- Today
- Total
꾸준히 성장하는 개발자
.env 파일을 통한 환경변수 관리하기 본문
이번에 NewYorkTimes의 api를 활용하여 newpage 만드는 미니 프로젝트를 진행하는데
API 토큰 키를 git에 포함시키지 않고 쉽게 교체할 수 있게 하라는 요구사항이 있었다.
앱과 서버 간의 통신 또는 자바 스크립트 웹 클라이언트와 서버 간 대부분의 통신이 이 API들을 이용해서,
이루어지기 때문에 한번 보안이 뚫리면 개인 정보가 탈취되는 것뿐만 아니라, 더 많은 문제를 일으킬 수 있다.
그렇기 때문에 api 토큰에 관해 보안에 대해 신경을 꼭 잘 써야 한다.
API 토큰을 관리하는 방법을 알아보자
dotenv 라이브러리를 활용
아래처럼 설치를 해주면 되는데
$ npm i dotenv
만약 react프로젝트로 create-react-app으로 설치를 했다면 이미 함께 설치가 되어있기 때문에
따로 설치하지 않아도 된다.
난 react 프로젝트를 진행하고 있어 따로 설치하지 않고 진행하였다.
위 사진처럼 프로젝트 최상단 폴더에 .env 파일을 생성하고
안에 작성할때는
키=값 이렇게 작성하면 된다.
예시)
NYT_API_KEY = ABCD
주의할 점!!
react 프로젝트 시 꼭 REACT_APP_ 를 앞에 작성하고 작성하면 된다.
예시는 위의 사진을 참고하자
그리고 키값을 사용할 때(API를 사용하는 컴포넌트나 redux위치)는 그 위에 변수로 불러와서 사용하면 되는데
require("dotenv").config();
const 키변수 = process.env. 키
React 프로젝트에서는 위에 작성된 아래 문구는 생략 가능하다.
require("dotenv").config();
그래서 아래 그림처럼
const 키 변수 = process.env. 키 이렇게만 작성해주면 된다.
그리고 .gitignore 파일에 .env 파일을 넣어주고 push 할 때는 올라가지 않도록 해준다.
Next.js 시 env키 설정하기
react와 동일하게 따로 설치는 필요 없다
많이 다를 것은 없다. 아래처럼
const API_KEY=process.env.API_KEY;
//next.config.js
const API_KEY = process.env.API_KEY;
const nextConfig = {
reactStrictMode: true,
async rewrites() {
return [
{
source: "/api/movies",
destination: `https://api.themoviedb.org/3/movie/popular?api_key=${API_KEY}`,
},
];
},
};
// .env
API_KEY=12345
만약 .env파일의 내용이 undefined로 읽어오지 못한다면 변수명 앞에
NEXT_PUBLIC_를 붙여서 해보자
NEXT_PUBLIC_API_KEY=키번호
const API_KEY = process.env.NEXT_PUBLIC_API_KEY
위에 작성되어 있는 코드가 궁금하고 api를 숨기는 다른 방법이 궁금하다면 아래 게시글에 들어가서 확인하자
https://dkfma6033.tistory.com/173
[Next.js] api키 숨기기 / redirect / rewrite
api 주소나 api key를 숨겨주고 싶을 때 사용하는 방법을 알아보자 // index.js const API_KEY = "..."; export default function Home() { const [movies, setMovies] = useState([]); useEffect(() => { (async..
dkfma6033.tistory.com
'React' 카테고리의 다른 글
[React] Login 페이지 - password 보기 기능 (0) | 2022.06.29 |
---|---|
[React] npm i path --save (0) | 2022.06.23 |
[React] vite 사용해보기 (0) | 2022.06.13 |
[React Hook] useParams (0) | 2022.06.08 |
[React] styled-reset _2 ( createGlobalStyle 전역 스타일로 관리 ) (0) | 2022.06.07 |