본문 바로가기
IT

Day14

by 깻잎쌈 2020. 2. 8.
반응형

패스포트 모듈화하기 

깃헙에도 올려놓음.

passportEx.zip
9.73MB

 


1

configPassport(app, passport)로 스트래티지(인증방식) 설정하고

userPassport(app, passport)로 라우팅 경로 설정하고 

나머지 스키마, 모델 정의함.

 

2

localhost:3000으로 초기화면 나오고 

각 버튼에 따라 /signup이나 /login으로 이동함.

 

/signup의 경우 local_signup 스트래티지를 따르고 

/login의 경우 local_login 스트래티지를 따른다.

 

성공과 실패의 redirect경로가 다르고 실패의 경우 플래시 메시지가 나타남.

(회원가입에 성공했을 시 /profile에 성공 플래시 메시지 나오는 건 내가 추가함) 

var express = require('express'),
    http = require('http'),
    path = require('path');

var bodyParser = require('body-parser'),
    static = require('serve-static'),
    expressErrorHandler = require('express-error-handler'),
    cookieParser = require('cookie-parser'),
    expressSession = require('express-session');

var mongoClient = require('mongodb').MongoClient,
    mongodb = require('mongodb'),
    mongoose = require('mongoose');

var crypto = require('crypto');

var passport = require('passport'),
    flash = require('connect-flash');

var config = require('./config/config'),
    route_loader = require('./routes/router_loader'),
    user = require('./routes/user'),
    database = require('./database/database');

var userPassport = require('./routes/user_passport');

var app = express();

app.set('port', process.env.port || config.server_port);
console.log('포트번호 세팅 : '+ app.get('port'));

//app.set('views', path.join(__dirname, 'views'));
// view 속성값으로 views 폴더를 지정 
app.set('views', __dirname +'/views');
//app.set('view engine', 'pug');
app.set('view engine', 'ejs');
console.log('뷰엔진 : '+ app.get('view engine'));

app.use(bodyParser.urlencoded({
    extended: false
}));

app.use(bodyParser.json());
// public 폴더의 파일들을 웹 서버의 /public 패스로 접근하도록 한다
app.use('/public', static(path.join(__dirname, 'public')));
app.use(cookieParser());
app.use(expressSession({
    secret: 'my key',
    resave: true,
    saveUninitialized: true
}));

app.use(passport.initialize());
app.use(passport.session());
app.use(flash());

var configPassport = require('./config/passport');
configPassport(app, passport);

console.log(' ');

var router = express.Router();
//route_loader.init(app, router);

// 라우터 객체 등록
app.use('/', router);

userPassport(app, passport);

var errorHandler = expressErrorHandler({
    static: {
        '404': './public/404.html'
    }
});

app.use(expressErrorHandler.httpError(404));
app.use(errorHandler);

app.listen(app.get('port'), function () {
    console.log('Server Started ' + app.get('port'));

    //db연결, 스키마&모델 정의 
    database.init(app, config);
});
반응형

'IT' 카테고리의 다른 글

Day 16  (0) 2020.02.11
Html] ckeditor 설정  (0) 2020.02.11
Day13  (0) 2020.02.07
Day12  (0) 2020.02.06
Day11  (0) 2020.02.05

댓글