2021. 3. 10. 22:05ㆍProjects/유튜브 클론코딩
6.0 PassportJS 소개
PassportJS
이제 인증 기능을 위해서 Passport를 사용할 것이다.
Passport는 아주 멋진 미들웨어로 사용자 인증을 구현시켜줄 것이다.
📝사용자 인증
브라우저 상에 쿠키(Cookies)를 설정해주면 그 쿠키를 통해서 사용자 아이디 등을 알 수 있을 거고
Passport가 브라우저에서 자동으로 쿠키를 가져와서 인증이 완료된 User object를 controller에게 넘겨줄 것이다.
또한 대부분의 다른 서비스들로부터 인증을 받을 수도 있다.(페이스북으로 로그인하기, 카카오로 로그인하기 등)
📝그 전에 쿠키에 대해서 이해하기
쿠키는 우리가 브라우저에 저장할 수 있는 것들인데 (쿠키에 대해서는 너무 걱정하지 않아도 된다)
쿠키는 크롬에서 검사(inspect)로 들어와서 볼 수 있다.
그러니까 쿠키는 이렇게 브라우저에 저장할 수 있는 어떤 것들인데
여기에는 모든 요청(request)에 대해서 백엔드로 전송될 정보들이 담겨 있다. 그런 일들은 다 자동적으로 일어난다.
예를 들어 우리 웹사이트에서 클라이언트(웹브라우저)에 쿠키가 있을 때,
서버에 뭔가 요청할 때 마다(로그인이나 가입, 홈으로 가기 등등 이런 것들이 요청(request)이다)
브라우저가 자동적으로 그 쿠키들을 서버로 전송해준다. 다 자동적으로 일어나는 일이다.
그리고 여기서 Passport는 무엇을 해주냐면 쿠키를 생성하고, 브라우저에 저장시켜주고 유저에게 해당 쿠키를 줄 것이다.
전체 과정을 보면 되게 복잡하지만 Passport가 알아서 해줄 것이기 때문에 걱정할 필요 없다
http://www.passportjs.org/docs/downloads/html/
이런식으로 하면 된다.
예를 들어 여기서 누군가 '/login'으로 post 시켰을 때 passport.authenticate라는 것을 호출한다.
여기서 이 'local'이란 건 Strategy(전략)이라고 불리는 건데 우리의 경우에는 페이스북이나 깃허브 같은 Strategy를 쓸 수 있다. 그리고 나서 인증이 되고 나면 이 함수가 실행될 것이다.(res.redirect ~~)
보다시피 passport는 멋지게도 직접 req.user라는 걸 만들어준다. 이게 바로 현재 로그인한 사용자가 될 것이다.
passport는 쿠키를 만들어주고 그 쿠키를 받고 어느 유저가 어느 쿠키를 가지고 있는지 기억할 것이고 모든 걸 알아서 다 해주기 때문에 우리가 나설 일이 없지
🎀아주 멋진 모듈 - "passport-local-mongoose"
이건 사용자 기능을 추가하는 건데 우리의 User model을 위한 거야 우린 사실 아직 User라는 model을 만들지는 않았다.
예를 들면 기본적인 사용자 인증이 필요한거 - 패스워드 변경, 패스워드 확인, 패스워드 생성, 패스워드 암호화 등 모든 것들!
'Projects > 유튜브 클론코딩' 카테고리의 다른 글
[유튜브 클론코딩] 6.2 Passport로 Local Authentication(로컬 인증) 하기 (2) (0) | 2021.03.10 |
---|---|
[유튜브 클론코딩] 6.1 Passport로 Local Authentication(로컬 인증) 하기 (1) (0) | 2021.03.10 |
[유튜브 클론코딩] 5. STYLING - 3 (0) | 2021.03.09 |
[유튜브 클론코딩] 5. STYLING - 2 (0) | 2021.03.09 |
[유튜브 클론코딩] 5. STYLING - 1 (0) | 2021.03.09 |