Flare-k

[Add] passport and User model

...@@ -3,6 +3,7 @@ import app from "./app"; // app.js에서 export default app했기 때문에 불 ...@@ -3,6 +3,7 @@ import app from "./app"; // app.js에서 export default app했기 때문에 불
3 import "./db"; 3 import "./db";
4 import "./models/Video"; 4 import "./models/Video";
5 import "./models/Comment"; 5 import "./models/Comment";
6 +import "./models/User";
6 7
7 dotenv.config(); 8 dotenv.config();
8 9
......
1 +import mongoose from "mongoose";
2 +import passportLocalMongoose from "passport-local-mongoose";
3 +
4 +const UserSchema = new mongoose.Schema({
5 + name: String,
6 + email: String,
7 + avatarUrl: String,
8 + facebookId: Number,
9 + githubId: Number,
10 +});
11 +// 이 상태에서 새로운 스키마를 추가한다.
12 +// passportLocalMongoose는 configuration object가 필요하다.
13 +// passportLocalMongoose의 옵션에 usernameField가 있다. 이는 username이 될 field를 명시해준다.
14 +// passportLocalMongoose에게 어떤 Field를 username으로 사용할 것인지 알려줘야 한다.
15 +// usernameField로 이메일을 사용하기로 하겠다.
16 +UserSchema.plugin(passportLocalMongoose, { usernameField: "email" });
17 +
18 +const model = mongoose.model("User", UserSchema);
19 +export default model;
...@@ -32,6 +32,9 @@ ...@@ -32,6 +32,9 @@
32 "morgan": "^1.10.0", 32 "morgan": "^1.10.0",
33 "multer": "^1.4.2", 33 "multer": "^1.4.2",
34 "node-sass": "^4.14.1", 34 "node-sass": "^4.14.1",
35 + "passport": "^0.4.1",
36 + "passport-local": "^1.0.0",
37 + "passport-local-mongoose": "^6.0.1",
35 "postcss-loader": "^3.0.0", 38 "postcss-loader": "^3.0.0",
36 "pug": "^2.0.4", 39 "pug": "^2.0.4",
37 "sass-loader": "^8.0.2", 40 "sass-loader": "^8.0.2",
......
1 +import passport from "passport";
2 +import User from "./models/User";
3 +
4 +// passport에게 strategy(로그인 방식)를 사용하도록 요청한다.
5 +// passportLocalMongooser가 제공하는 strategy를 이용한다. -> username과 password를 사용.
6 +passport.use(User.createStrategy());