웹서비스 만들기(1)

EunRyeong Park·2022년 8월 3일
1

HASH
-문자열을 되돌릴 수 없는 방식으로 암호화 하는 법

const hash=crypto.createHash('sha1');
//crypto(node.js의 기본제공 모듈)을 사용하여 hash값 얻기
//sha1=>알고리즘 중 하나
hash.update(password);
hash.digest("hex");//16진수

=>단방향 암호화 함수
Hash 값을 알더라도 원본 문자열을 알아낼 수 x


Passport.js
-Express.js에 사용자 인증 기능을 구현하게 도와주는 패키지
-유저 세현 관리 및 다양한 로그인 방식 추가 기능
-strategy라는 인터페이스 제공

  • passport-local
    :username,password를 사용하는 로그인 구현체
passport.use()//작성한 strategy를 선언
passport.authenticate('http라우팅')//request handler자동생성

//유저정보를 세션에 저장하고 가져오는 동작
const session=require('express-session')
passport.session()
//session에 user 정보를 변환하여 저장하고 가져오는 기능
passport.serializeUser((user, callback) => {
callback(null, user);
});
passport.deserializeUser((obj, callback) => {
callback(null, obj);
});
  • 로그아웃=> router.get('',{req.logout();})

Session
-웹서버가 클라이언트의 정보를 클라이언트별로 구분하여 서버에 저장/
클라이언트 요청시 Session ID를 사용하여 클라이언트의 정보를 다시 확인

<->Cookie(클라이언트가 정보를 저장/요청시 정보는 보냄)

Session 작동 방식
1. 서버는 세션을 생성하여 Session ID(세션 구분자)를 클라이언트에 전달
2. 클라이언트는 요청 시 session id를 함께 요청에 담아서 전송
3. 서버는 전달받은 session id로 해당하는 세션을 찾아 클라이언트 정보 확인

Session Store
-서버 간 동일한 세션 저장소를 공유
-expression-session패키지는 session을 메모리에 저장
->종료후 다시 실행하면 로그인 해제=>서버 간 세션 정보 공유 못함❗

const MongoStore = require('connect-mongo');
app.use(session({ 
	~~~
  	~~~
	store: MongoStore.create({ 
		mongoUrl: 'mongoUrl',
		}),
}));
//connect-mongo를 사용하여 MongoDB를 session store로 사용 가능
//세션데이터를 몽고디비에 저장하고 관리하는 기능을 자동으로 수행해줌
  • Index
    MongoDB에서 검색을 위해 Document를 정렬하여 저장하는 기능 중
    Index를 사용하면 쿼리를 효율적으로 수행하여 성능 향상 가능

0개의 댓글

관련 채용 정보