일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gcp ssh
- Nest.js 로그인
- nest passport
- Nest.js login
- nest authentication
- InnerJoinMapOne
- nest jwt
- nest login
- 맥 포트확인
- local database
- How to Join Tables Without Relations in TypeORM
- 맥 사용하는 포트 확인
- vm ssh 포트
- vm ssh
- vm ssh 포트 변경
- vm ssh port
- ssh 포트 변경
- ssh vm연결
- ssh연결
- 맥 포트닫기
- JWT
- macOS ssh
- ssh 연결 방법
- docker mysql설치하기
- port 22: Operation timed out
- jwt장점
- Nest.js
- gcp ssh 포트 변경
- gcp ssh vm
- JWT쓰는이유
- Today
- Total
목록전체 글 (11)
Seize the day
NestJS와 TypeORM을 사용하는 개발 과정에서, 서로 관계가 정의되지 않은 테이블 간에 조인이 필요한 상황이 발생했다. TypeORM은 주로 연관 관계를 통해 데이터를 처리하며, 필요한 경우 raw SQL 쿼리를 통해 직접 조회할 수도 있다. 그러나, QueryBuilder를 활용하면 더 유연하게 조인 작업을 수행할 수 있다.TypeORM의 QueryBuilder를 사용하여 조인을 수행할 때 사용할 수 있는 메소드에는 innerJoin, innerJoinAndSelect, 그리고 innerJoinAndMapOne이 있다.innerJoin조인을 수행 하지만, 조인된 결과를 작동으로 매핑하지 않는다. 별도로 select 함수를 써줘야 한다.innerJoinAndSelectJoin을 수행하고 Entit..
JSON Web Token(JWT)은 JSON 객체로 정보를 안전하게 전송하는 방법의 일종으로 공개된 표준(RFC 7519)이다. 말 그대로 필요한 정보들을 token에 담아 암호화 시켜 사용하는 것입니다. JWT는 서명된 토큰(signed token)이라고 강조되고 있다. 공개/개인 키를 쌍으로 사용하여 서명할 경우 이 서명은 비공개 키를 보유하고 있는 당사자만이 그 토큰을 서명했다는 것을 보장한다. 즉, 키를 보유한 서버가 이 토큰이 정상적인지 알 수 있다. JWT 구조 JWT는 헤더(Header), 페이로드(Payload), 서명(Signature)으로 구성 되어 있다. 각 부분은 Base64로 인코딩 되고, 점(.)으로 구분자로 사용된다. xxxxx.yyyyy.zzzzz Header { "alg"..
캐싱은 임시 데이터 저장소 역할을 한다. 먼저 필수 패키지를 설치한다. $ npm install cache-manager $ npm install -D @types/cache-manager Nest는 cache-storage를 제공하는데 기본적으로는 in-memory이다. redis를 사용하기 위해 node-cache-manager-redis-store를 설치한다. npm install cache-manager-redis-store --save ConfigModule를 통해 환경변수를 불러온다. import * as redisStore from 'cache-manager-redis-store'; import { ConfigModule, ConfigService } from "@nestjs/config";..
[Nest.js] Login Authentication 구현 ( passport + jwt + local strategy ) 사용자인증은 대부분의 애플리케이션에서 필수적인 부분이다. 인증을 처리하는 방법은 다양하지만 Nest.js 공식홈페이지에서 passport를 안내하고 있어 필자는 passport와 jwt를 선택했다. jwt 전략을 nofunfromdev.tistory.com Nest.js로 Login 구현하기 (2) 이전글에서는 데이터베이스에서 사용자를 검색하여 로그인부분까지 구현하였다. 이번글에서는 로그인 성공하고 사용자 정보가 아닌 jwt를 반환하고 API 호출 시 유효한 토큰인지 검증하려고 한다. 패키지 설치 및 모듈 생성 $ npm install --save @nestjs/jwt passpo..
사용자인증은 대부분의 애플리케이션에서 필수적인 부분이다. 인증을 처리하는 방법은 다양하지만 Nest.js 공식홈페이지에서 passport를 안내하고 있어 필자는 passport와 jwt를 선택했다. jwt 전략을 사용 하기 전 passport-local을 먼저 구현하였다. Nest.js로 Login 구현하기 (1) 패키지 설치 및 모듈 생성 $ npm install --save @nestjs/passport passport passport-local $ npm install --save-dev @types/passport-local 패키지를 설치 후 모듈과 서비스를 생성한다. $ nest g module auth $ nest g service auth --no-spec $ nest g module use..
local 작업으로 database가 필요하여 docker로 컨테이너를 생성하여 실행하였다. Docker로 MySQL 설치하기 1. Dokcer version 확인 $ docker version 2. docker 이미지 다운로드 $ docker pull mysql MySQL Docker 이미지를 다운로드한다. 버전을 지정하지 않으면 최신 버전이 다운된다. 버전을 지정하려면 태그를 작성한다. 다운로드할 수 있는 MySQL 버전은 docker hub에서 확인할 수 있다. $ docker pull mysql:8.0.28 $ docker images 다운로드한 docker image를 확인한다. 3. MySQL Docker 컨테이너 생성 및 실행 $ docker run --name mysql-local -e ..
[GCP] ssh로 vm 연결 / port 22: Operation timed out 에러. (feat. SK 브로드밴드) 내가 사용하고 있는 macOS에서 GCE(VM)에 ssh로 접속하려고 한다. ssh key 생성 GCP 메타데이터에 ssh public key (공개키) 등록 1. ssh key 생성 ssh-keygen -t rsa -f ~/.ssh/gcekey -C nofunfromdev gcekey는.. nofunfromdev.tistory.com (이전 글 참고) 22포트가 SK브로드밴드에서 막혀있어 집에서 연결이 안된다. 핫스팟 이용도 불편하고, 결국 port를 바꿔야겠다. GCP VM인스턴스 SSH 포트 변경 GCP VM인스턴스의 SSH 기본포트(22)를 변경하려면 VM에 접속하여 파일을 ..
내가 사용하고 있는 macOS에서 GCE(VM)에 ssh로 접속하려고 한다. ssh key 생성 GCP 메타데이터에 ssh public key (공개키) 등록 1. ssh key 생성 ssh-keygen -t rsa -f ~/.ssh/gcekey -C nofunfromdev gcekey는 KEY_FILENAME nofunfromdev는 USER 참고 : https://cloud.google.com/compute/docs/connect/create-ssh-keys 2. GCP 메타데이터에 ssh public key (공개키) 등록 1번에서 생성한 public key를 확인하여 내용을 복사한다. cat ~/.ssh/gcekey.pub GCP 콘솔에 접속하여 GCE VM 인스턴스를 수정하여 Google Clo..