2021. 3. 10. 22:11ㆍProjects/유튜브 클론코딩
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 default model;
↑ User.js
avatarUrl은 예전에 Video model에서 fileUrl처럼 똑같이 처리해줄 것이다.
아무튼 다 만들었으면 init.js에 import 해준다.
import "./db";
import app from "./app";
import dotenv from "dotenv";
dotenv.config();
import "./models/Video";
import "./models/Comment";
import "./models/User";
const PORT = process.env.PORT || 4000;
const handleListening = () => console.log(`✅Listening on: http://localhost:${PORT}`);
app.listen(PORT, handleListening);
↑ init.js
2. passport-local-mongoose (install -> import -> plugin )
📝passport-local-mongoose란?
passport를 사용한 사용자 이름 및 비밀번호 로그인을 단순화하는 Mongoose 플러그인 이다.
설치하기
아직 User.js에 passport는 개입되지 않았다. 우리는 passport-local-mongoose를 쓸 것이다.
mongoose도 쓰고 mongoDB도 쓰고 있는 우리에게 딱 적합한 것이다.
설치 : npm install passport-local-mongoose
import 하기
import passportLocalMongoose from "passport-local-mongoose";
User.js에 다음과 같이 import 해준다.
plugin 적용하기
passportLocalMongoose는 설정 객체가 필요하다.
passportLocalMongoose에게 어떤 field를 username으로 할 것인지를 알려주어야 한다.
import mongoose from "mongoose";
import passportLocalMongoose from "passport-local-mongoose";
const UserSchema = new mongoose.Schema({
name: String,
email: String,
avatarUrl : String,
facebookId : Number,
githubId: Number
});
UserSchema.plugin(passportLocalMongoose, { usernameField: 'email'});
const model = mongoose.Model("User",UserSchema);
export default model;
↑ User.js
3. passport & passport-local
📝passport-local이란
username과 password를 쓰는 로그인 방식을 말한다. (strategy)
설치 : npm install passport passport-local
지금은 passport-local을 설치할 거고 나중에 passport-facebook passport-github 같은 것도 설치해서 쓸 것이다.
4. passport.js 만들기
import passport from "passport";
import User from "./models/User";
passport.use(User.createStrategy());
↑ passport.js
이봐 passport야 strategy(방식)를 하나 사용해 - strategy 라는 건 로그인하는 방식
지금은 username이랑 password를 쓰는 방식을 사용할려고 한다
공식 사이트를 가보면 원래는 new LocalStrategy라고 해서 저렇게 긴 코드를 작성해야 하는데 저렇게 긴 코드가 createStrategy라는 한 줄로 표현이 되는 것이다.
(createStrategy()는 이미 구성된 passport-local의 LocalStrategy를 생성한다)
'Projects > 유튜브 클론코딩' 카테고리의 다른 글
[유튜브 클론코딩] 6.3 Loggin the User In (로그인 시키기) (0) | 2021.03.10 |
---|---|
[유튜브 클론코딩] 6.2 Passport로 Local Authentication(로컬 인증) 하기 (2) (0) | 2021.03.10 |
[유튜브 클론코딩] 6.0 PassportJS 소개 (0) | 2021.03.10 |
[유튜브 클론코딩] 5. STYLING - 3 (0) | 2021.03.09 |
[유튜브 클론코딩] 5. STYLING - 2 (0) | 2021.03.09 |