본문 바로가기

WEB

Node.js로 웹서비스 만들기 18일차

로그인 했을때만 글쓰기 가능 만들기 -1

Session 방식 로그인 기능 만들기

 

npm install passport passport-local express-session

라이브러리 3개를 설치한다.

(npm install 다음에 라이브러리 명칭을 띄어쓰기로 나열하면 여러개를 동시에 설치할 수 있다.)

 

server.js에 다음의 코드 추가

//server.js

const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const session = require('express-session');
app.use(session({secret : '비밀코드', resave : true, saveUninitialized : false}));
app.use(passport.initialize());
app.use(passport.session());

 

그 다음 로그인 페이지 만들기

//login.ejs

<form action="/login" method="POST">
        <div class="form-group">
          <label>ID</label>
          <input type="text" class="form-control" name="id">
        </div>

        <div class="form-group">
            <label>Password</label>
            <input type="password" class="form-control" name="pw">          
          </div>
        
        <button type="submit" class="btn btn-primary">Submit</button>
      </form>

기존 write 페이지와 거의 비슷함

 

 

다음으로 server.js에 코드 추가

server.js

app.get('/login', function(request, response){
    response.render('login.ejs');
});

app.post('/login', passport.authenticate('local', {
    failureRedirect : '/fail'
}), function(request, response){
    response.redirect('/'); //로그인이 성공했을 때
});

다음 포스팅에 내용 추가함