본문 바로가기

WebApp

(100)
Node.js -다중사용자(3) - bcrypt 1. 비밀번호 암호화 bcrypt google 검색 : bcrypt npm www.npmjs.com/package/bcrypt bcrypt A bcrypt library for NodeJS. www.npmjs.com (1) - bcrypt 설치 npm i -s bcrypt (2) - syntax 폴더에 bcrypt.js파일 생성 (3) - 위 사이트의 추전 사용법 코드 작성 *salRouns의 기본값은 10이다! 설명은 아래 코드주석에! (4) - 이렇게 나의 비밀번호를 hash로 저장을 하고 나중에 로그인을 할때 들어온 비밀번호가 나의 비밀번호인지 확인대조를 할 코드를 작성해보자 2. 나의 애플리케이션에 적용시키기 '/register_process'에서 계정을 등록할때 password를 hash정보로 ..
Node.js -다중사용자(2) 1.접근제어 글쓰기 (1) - db.js에서 topic[]를 추가하고 (2) - topic.js의 글쓰기와 관련있는 '/process_create' 라우터에서 /create 에서 받은 글제목과 내용을 포스트정보로 받아와서 db.get()으로 db.json에 정보를 넣는다 (*이때 추가적으로 글쓰기정보에 대한 고유id값을 shortid로 넣어주고 추가로 user정보와 연동을 시키기 위해 request.user.id(로그인 되었을시에만 로그인유저 정보가 request.user에 들어가 있음) 도 함께 넣어준다) (3) - (2) 에 의해서 /topic/page/${title} 즉 예를 들어 글제목을 Text로 작성해서 제출했다고 하면 /topic/page/Text 로 넘어오게 된다 (4) - 관련된 라우터인..
Node.js-passport 리펙토링(1) 1. passport 코드 모듈화 (1) - lib디렉토리 아래 passport.js 파일을 생성 (2) - 기존 main.js에 있던 passport와 관련된 코드들을 ./lib/passport.js로 이주하고 함수화 (3) - main.js와 연동시키기위해 require('./lib/passport.js') 그리고 모듈파일인 passport.js를 함수로써 exports했기때문에 그 안의 코드를 불러오려면 함수를 호출해야한다 따라서 require('./lib/passport.js')(); 로 함수 호출 2. lib/passport.js 와 main.js연동(1) (1) - lib/passport.js 에서는 app이라는 변수를 사용하고 있는데 이는 main.js에 const app = express(..
Node.js -passport sessions에 passport가 저장되지도 않고 deserialize 도 안나오는 오류해결 npm install -save connect-loki 설치 session-store.db를 생성하고 그 안에 데이터 저장!! 이러면 오류 없음 기존 sessions-file-store 는 윈도우 10과 호환성에 오류가 있다고 함
Node.js -다중사용자(1) 1.register UI 및 /auth/register 페이지 생성 2. lowdb 설치 및 /register_process 페이지 생성 (1) npm i -s lowdb로 lowdb설치 (2) 상단에 const low = require('lowdb') const FileSync = require('lowdb/adapters/FileSync') const adapter = new FileSync('db.json') const db = low(adapter) db.defaults({ user: []}).write(); -->db최초 상태 user라는 속성 생성 (3) router.post(/register_process)코드 작성 db.get('user').push({ }).write() 로 입력값으로 받..
Node.js-passport3 1. 로그인 이 후 다시 페이지를 리로드 해보면 main.js의 deserializeUser가 호출되면서 45번쨰 줄의 console.log 가 터미널에 나타나고 뒤이어 콜백함수인 done()이 실행되면서 두번째 인자로 주입한 authData 즉 저장된 사용자데이터가 request의 user라는 객체로 전달되게 되는 것이다. *우리가 passport를 사용하지 않으면 request객체는 user라는 객체를 가지고 있지 않는다 즉 우라가 passport를 사용하게 되면 passport가 우리가 사용할 수 있도록 request에 user라는 객체를 생성해주는 것이다 2. 그러면 우리는 user의 값을 기준으로 해서 사용자가 로그인 했는지 하지 않았는지를 체크할 수있다 기존에 만들었던 statuseUI와 관련..
Node.js-passport2 --저장된 사용자의 정보에 따라 로그인에 성공을 하면 위와 같이 passport.initialize() 라는 미들웨어가 사용되지 않았다는 에러가 나온다 1.app.use(passport.initialize()); 로 express에다가 passport라는 미들웨어를 설치하도록 한다 그러면 express가 호출될때마다 passport가 실행되고 passport는 session을 기반으로 실행되기 때문에 app.use(passport.session());으로 이를 사용 할 수 있도록 한다 3.로그인이 성공하면 passport가 내부적으로 우리에게 성공여부의 상태를 알아낼 수 있는 방법을 제공한다 로그인이 성공하면 홈으로 가도록 설정했기 때문에 홈에서 무슨일이 일어나는지 보자 console.log('/',re..
Node.js-passport 참조: www.passportjs.org/docs/ Documentation Overview Passport is authentication middleware for Node. It is designed to serve a singular purpose: authenticate requests. When writing modules, encapsulation is a virtue, so Passport delegates all other functionality to the application. This separation o www.passportjs.org 목표 : session으로 구현한 인증을 passport(user&pwd로그인 전략)로 재구현 해보자 1.passport 설치 npm inst..