분류 전체보기(277)
-
[유튜브 클론코딩] 6.5 MongoStore and Middlewares
6.5 MongoStore and Middlewares 서버가 재시작되어도 로그인이 유지되도록 하기 js 파일을 수정해서 서버가 재시작된다고 하더라도 쿠키를 계속 보존하고 여전히 로그인 상태를 유지하게 할 수 있는 것을 할 것이다. --> 원래는 그냥 아무것도 설정하지 않아서 메모리를 사용해서 저장을 했었기 때문에 데이터베이스를 사용해서 세션을 저장하도록 하면 된다. mongoDB, 즉 데이터베이스를 사용해서 세션을 저장하도록 하기 connect-mongo(mongo와 연결하기)를 써서, session에게 데이터를 MongoStore라는 저장소에 저장하라고 알려주어야 한다. connect-mongo설치 및 설정 설치 : npm install connect-mongo **현재 connect-mongo 버전..
2021.03.11 -
[유튜브 클론코딩] 6.4 Sessions on Express
6.4 Sessions on Express 세션 설치하기 npm install express-session app.js에 import 해주고 session 작성하기 import express from "express"; import morgan from "morgan"; import helmet from "helmet"; import cookieParser from "cookie-parser"; import bodyParser from "body-parser"; import passport from "passport"; import session from "express-session"; import userRouter from "./routers/userRouter"; import videoRouter..
2021.03.11 -
[유튜브 클론코딩] 6.3 Loggin the User In (로그인 시키기)
6.3 Loggin the User In (로그인 시키기) 지난 시간 까지 사용자를 가입시킬 수 있었고, 이제 로그인을 시켜볼 것이다. userController에서 postJoin을 미들웨어로 바꾸기(next만 넣으면 된다) userController로 와서 join을 처리하는 controller를 middleware로 탈바꿈 시킬 것이다. export const postJoin = async (req,res,next) => { // console.log(req.body); const{ body:{name, email, password, password2} } = req; if(password !== password2){ res.status(400); res.render("join", {pageTitl..
2021.03.10 -
[유튜브 클론코딩] 6.2 Passport로 Local Authentication(로컬 인증) 하기 (2)
6.2 Passport로 Local Authentication(로컬 인증) 하기 (2) serializeUser & deserializeUser serializeUser 함수: 쿠키에 어떤 데이터를 저장할지 선택하는 것이다. 유저의 정보 모두를 담는 것은 효율적이지 않기 때문에, id와 같이 고유한 값만을 저장하는 것이 바람직하다. deserializeUser 함수: serializeUser를 통해 쿠키에는 id만 저장되었으므로, 그 id를 통해 사용자를 구분할 수 있다. 원래는 serializeUser와 deserializeUser 함수에 대해서 길게 코드를 적어야 하는데, passport-local-mongoose의 도움으로 간단하게 구현 가능하다. 이렇게 passport가 사용자 인증을 처리할 수 ..
2021.03.10 -
[유튜브 클론코딩] 6.1 Passport로 Local Authentication(로컬 인증) 하기 (1)
6.1 Passport로 Local Authentication(로컬 인증) 하기 (1) 1. models > User.js 파일 만들기 & import (init.js) User라는 model을 만들 것이다. User는 이름, 이메일, 페이스북 아이디, 깃허브 아이디, 아바타 URL 등을 가질 것이다. i mport mongoose from "mongoose"; const UserSchema = new mongoose.Schema({ name: String, email: String, avatarUrl : String, facebookId : Number, githubId: Number }); const model = mongoose.model("User",UserSchema); export defaul..
2021.03.10 -
[유튜브 클론코딩] 6.0 PassportJS 소개
6.0 PassportJS 소개 PassportJS 이제 인증 기능을 위해서 Passport를 사용할 것이다. Passport는 아주 멋진 미들웨어로 사용자 인증을 구현시켜줄 것이다. 📝사용자 인증 브라우저 상에 쿠키(Cookies)를 설정해주면 그 쿠키를 통해서 사용자 아이디 등을 알 수 있을 거고 Passport가 브라우저에서 자동으로 쿠키를 가져와서 인증이 완료된 User object를 controller에게 넘겨줄 것이다. 또한 대부분의 다른 서비스들로부터 인증을 받을 수도 있다.(페이스북으로 로그인하기, 카카오로 로그인하기 등) 📝그 전에 쿠키에 대해서 이해하기 쿠키는 우리가 브라우저에 저장할 수 있는 것들인데 (쿠키에 대해서는 너무 걱정하지 않아도 된다) 쿠키는 크롬에서 검사(inspect)로..
2021.03.10