이재용

app.js updated

Showing 1 changed file with 206 additions and 0 deletions
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var session = require('express-session')
app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
var users = new Array();
users[0] = {
"userId" : "aaa",
"name" : "jin",
"password" : "1234",
"isAdmin" : true
}
users[1] = {
"userId" : "asd",
"name" : "kim",
"password" : "1234",
"isAdmin" : false
}
app.put('/login', function (req, res) {
if(req.session.userId!=null)
{
res.send("이미 로그인 상태입니다")
}
else
{
var users_num=users.length
console.log(users_num)
var checking=0
while(users_num>0)
{
console.log(users[users_num-1].userId)
if (users[users_num-1].userId==req.body.userId)
{
checking=1
console.log("id ok")
if(users[users_num-1].password==req.body.password)
{
req.session.userId=req.body.userId
if(users[users_num-1].isAdmin==true)
{
req.session.isAdmin=1
res.send("login as admin");
console.log("admin ok")
}
else
{
console.log("guset ok")
res.send("login as guest");
}
}
else
{
console.log("passwd ok")
res.send("wrong password");
}
}
users_num-=1
}
// users 배열에서 찾도록 처리 해야 함
// admin 여부를 확인하여 체크
// req.body.id : ID -> req.body.userId 로 변경했습니다
// req.body.name : 패스워드 -> req.body.password 로 변경했습니다
if (checking==0)
{
res.send("no id")
}
}
});
app.put('/logout', function (req, res) {
// Logout
if(req.session.userId!= null&&req.session.userId==req.body.userId)
{// 세션 유효 여부를 체크하고 세션 Delete
req.session.userId = null
req.session.isAdmin= 0
res.send("LogOut");
}
else if(req.session.userId!=null&&req.session.userId!=req.body.userId)
{
res.send("로그아웃 body를 다시 한번 해보세요(현재 로그인 된 아이디와 다름")
}
else
{
res.send("already Logout")
}
});
var auth = function (req, res, next) {
// Session Check
// 어드민 여부 체크 필요
if (req.session.userId != null)
{
if(req.session.isAdmin ==1)
{
next();
}
else
{
res.send("only admin can use this function")
}
}
else
res.send("Error");
};
app.get('/users/:userId', auth,function (req, res) {
var users_num_get=users.length// get User Information
var user_id=String(req.params.userId)
console.log(user_id)
var checking2=0
while(users_num_get>0)
{
if(users[users_num_get-1].userId==user_id)
{
checking2=1
res.send(users[users_num_get-1]);
res.end()
}
else
{
console.log("")
}
users_num_get-=1
}
if(checking2==0)
{
res.send("해당 아이디가 없습니다.")
}
});
app.post('/users',auth, function(req,res)
{
var num=users.length
users[num]=
{
"userId" : req.body.userId,
"name" : req.body.name,
"password" : req.body.password,
"isAdmin" : req.body.isAdmin
}
console.log(users[num])
res.send("사용자가 생성되었습니다.")
});
// 사용자 추가 시에 admin 여부도 추가해야 함
app.put('/users',auth, function(req,res)
{
num=users.length
checking2=0
while(num>0)
{
if(users[num-1].userId==req.body.userId)
{
users[num-1]=
{
"userId" : req.body.userId,
"name" : req.body.name,
"password" : req.body.password,
"isAdmin" : req.body.isAdmin
}
console.log(users[num-1])
res.send("사용자 정보가 변경되었습니다.")
checking2=1
}
num-=1
}
if (checking2==0)
{
res.send("해당 사용자가 없습니다")
}
});
app.delete('/users/:userId',auth, function(req,res)
{
var id_check=req.params.userId
num=users.length
checking2=0
while(num>0)
{
if(users[num-1].userId==id_check)
{
users.splice(num-1,1)
checking2=1
res.send("삭제가 완료되었습니다.")
}
num-=1
}
if (checking2==0)
{
res.send("해당 사용자가 없습니다")
}
});
var server = app.listen(80);