본문 바로가기

728x90
반응형
서버
728x90
반응형
6

Access Token + Refresh Token JWT 인증 Refresh token 사용 이유 Access Token(JWT)를 통한 인증 방식의 문제 제 3자에게 탈취당할 경우 보안에 취약하다는 점입니다. 유효기간이 짧은 Token의 경우 그만큼 사용자는 로그인을 자주 해서 새롭게 Token을 발급받아야 하므로 불편합니다. ⇒ 유효기간을 늘리면, 토큰을 탈취당했을 때 보안에 더 취약해지게 됩니다. “유효기간을 짧게 하면서 좋은 방법이 있지는 않을까?”라는 질문의 답이 바로 "Refresh Token"입니다. Refresh Token Access Token과 똑같은 형태의 JWT 로그인 시 Access Token과 동시에 발급되는 Refresh Token은 긴 유효기간을 가지면서, Access Token이 만료됐을 때 새로 발급해주는 열쇠가 된다. ex. Ref.. 2021. 9. 10.
CORS 이슈 해결하기 cors는 cross origin resource sharing의 약자로 개발할 때 많이 발생하는 이슈 중 하나입니다. 특히 최근에는 서버와 프론트의 ip 주소가 달라 이런 경우가 더 많이 발생하고 있는데, 이 이슈는 브라우저에서 요청 못하게 막는 거여서 제대로 해결하려면 어려운 부분이죠. cors가 뭔지 먼저 알아봅시다. CORS의 의미 cors에서 말하는 origin은 url에서 프로토콜(https) + 호스트(www.naver.com) + path(/users) + 쿼리(?sort=asc&page=1) + fragment(#foo)로 이루어진 부분을 말한다. 여기에 포트번호가 있다면 포트번호까지 합친 것이 origin 이고 포트번호가 없다면 기본포트인 80을 사용한다는 의미입니다. 여기서 포트번호까.. 2021. 1. 18.
웹사이트가 브라우저에 뜨는 과정 웹사이트가 브라우저에 뜨는 과정을 알아보자. 단골 개발자 면접 질문중에 하나로 네트워크가 있지. 네트워크 수업을 들었다면 조금 더 이해가 쉬울텐데 이 과정을 간단히 정리해보면 다음과 같다. 요약 사용자가 브라우저에 url 입력 url 에서 도메인 name 부분을 DNS 서버에서 검색한다. DNS 서버에서 해당 domain name에 해당하는 ip 주소를 찾아 url 정보와 함께 전달. 웹페이지 url 정보와 전달받은 ip 주소는 http 프로토콜을 사용해 http 요청 메세지를 생성. 4번에서 생성된 http 요청 메세지를 tcp 프로토콜을 사용해 인터넷을 거쳐 ip 주소의 컴퓨터로 전송. 도착한 http 요청 메시지는 http 프로토콜을 사용해 http 응답을 만든다. 만들어진 http 메시지를 다시 .. 2021. 1. 18.
3. Heroku 에 MySQL 생성 & async await [개발/백엔드 & 서버] - 2. Express, Heroku 라우팅 빌드해서 배포 2. Express, Heroku 라우팅 빌드해서 배포 [개발/백엔드 & 서버] - 1. Heroku 에 Node Express 올리기 Heroku 에 Node Express 올리기 간단하게 Express 프레임 워크를 사용한 Node 백엔드 서버를 Heroku 서비스에 올려보도록 하겠습니다. Heroku는 aws처럼.. donologue.tistory.com 연재물입니다. 이전 부분이 궁금하시다면 위 게시물을 읽고 와주세요! 저번 시간에는 간단한 라우팅으로 api 작성 후 빌드해서 배포하는 아주 간단한 예제를 해보았습니다. 이번에도 백엔드 구조 잡기라고 할 수 있는데요. DB 연결을 해서 Heroku 서버에서도 잘 연결.. 2020. 3. 1.
1. Heroku 에 Node Express 올리기 간단하게 Express 프레임 워크를 사용한 Node 백엔드 서버를 Heroku 서비스에 올려보도록 하겠습니다. Heroku는 aws처럼 물리서버 없이도 서버를 구동시켜주는 좋은 서비스에요! 무료로 사용할 수 있는 서버의 범위도 훨씬 넓구요. 하지만 url이 뒤에 herokuapp이 붙는다는 걸 생각해두셔야합니다. 간단한 서버 만들기 $ mkdir name $ cd name $ yarn init 먼저 폴더를 만든 후 yarn init 으로 package.json을 만듭니다. yarn init 필요한 필드만 입력하시고 엔터쳐서 넘어가셔도 됩니다. 이후 이이름 폴더 내에 .gitignore 파일을 만들어 node_modules를 미리 추가해두면 git에 업로드할 때 node_modules 내의 라이브러리들이.. 2020. 2. 26.
aws ec2 mongoDB 원격 접속 후 mongoose 설정 안녕하세요! 몽고DB를 AWS 서비스를 이용해서 원격 접속을 하는 방법을 알아보도록 하겠습니다. 먼저 aws ec2 인스턴스에 적용해야하니 ec2 인스턴스가 필요하겠죠? 인스턴스를 생성하시고 나서 보안그룹 설정시 27017 포트를 모든 아이피 (0.0.0.0)에게 열어주어야 합니다. 혹은 특정 아이피 구간에만 27017 포트를 허용해주는 게 보안에 더 좋은데, 이 방법은 제가 몰라서 찾아봐야 할 듯 합니다. User 생성 커맨드 툴을 이용해서 아래와 같이 ec2 에 접속해줍니다. 그리고 mongo를 입력해 mongoDB에 접속하면 됩니다. > use 디비이름; > db; 디비이름 그리고 사용할 데이터베이스로 접속해줍니다. //not work db.createUser({user: "developer", .. 2020. 1. 30.