Projects(99)
-
[유튜브 클론코딩] 6.7 Github Login Part.2
6.7 Github Login Part.2 사용자를 깃허브로 보낼 함수 작성하기(githubLogin) 위에서는 사용자가 깃허브에서 돌아왔을 때 실행할 함수를 작성한 거고 사용자를 깃허브로 보낼 함수도 작성해야 할 것이다. userController에서 하나를 더 생성한다. export const githubLogin = passport.authenticate('github'); ↑ userController.js 이전에 local방식으로 인증했던 거랑 똑같은 코드이다. 공식 문서를 보면 이렇게 나와있는데 즉 누군가 저 루트로 접속하면 passport에서 github 방식으로 사용자를 인증해주겠다는 의미이므로 이걸 위한 루트도 만들어야 한다. 깃허브 로그인을 위한 루트 만들기 routes.js에서 먼저 ..
2021.03.11 -
[유튜브 클론코딩] 6.6 Github Login Part.1
6.6 Github Login Part.1 passport-github 설치하기 github로 로그인하는 방식을 구현해볼 거기 때문에 github strategy를 설치해야 한다. 설치: npm install passport-github 📌깃허브로 로그인 하는 흐름 깃허브로 로그인을 시키려고 하면 사용자를 깃허브로 보낼거고, 깃허브가 사용자 정보를 줘도 되겠느냐고 물어보고 사용자는 ok를 할 것이다 그렇게 깃허브가 사용자의 승인을 받으면 사용자를 다시 우리 어플리케이션을 돌려보내는데 그 사용자의 정보도 같이 줄 것이다. 깃허브에서 어플리케이션 등록하기 https://github.com/settings/applications/new 위의 사이트로 들어가서 등록을 하면 clientID와 clientSecre..
2021.03.11 -
[유튜브 클론코딩] 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