app.js
3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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": 0,
"name": "jin",
"password": "abc",
"isAdmin": true
}
app.put('/login', function (req, res) {
// users 배열에서 찾도록 처리 해야 함
// admin 여부를 확인하여 체크
// req.body.id : ID
// req.body.name : 패스워드
const user = req.body;
for (var i = 0; i < users.length; i++) {
if (users[i].userId == user.userId && users[i].password == user.password) {
req.session.userId = users[i].userId;
req.session.isAdmin = users[i].isAdmin;
res.send("Login");
return;
}
}
res.send("Login Failed");
return;
});
app.put('/logout', function (req, res) {
// Logout
// 세션 유효 여부를 체크하고 세션 Delete
if (!users[req.session.userId]) {
res.send("Error!");
return ;
}
req.session.userId = null;
req.session.isAdmin = null;
res.send("LogOut");
return ;
});
var auth = function (req, res, next) {
// Session Check
// 어드민 여부 체크 필요
console.log(req.session.userId, req.session.isAdmin);
if (req.session.userId != null && req.session.isAdmin == true)
next();
else
res.send("Not Admin");
return ;
};
app.get('/users/:userId', auth, function (req, res) {
// get User Information
const user = req.params;
for (var i = 0; i < users.length; i++) {
if (users[i].userId == user.userId) {
res.send(users[i]);
return ;
}
}
res.send("Not exist user");
return ;
});
app.put('/users', auth, function (req, res) {
const user = req.body;
for (var i = 0; i < users.length; i++) {
if (users[i].userId == user.userId) {
users[i] = {
"userId": user.userId,
"name": user.name,
"password": user.password,
"isAdmin": user.isAdmin
}
res.send("Updated");
return ;
}
}
res.send("Not exist user");
return ;
});
app.post('/users', auth, function (req, res) {
user = req.body;
users[user.userId] = {
"userId": user.userId,
"name": user.name,
"password": user.password,
"isAdmin": user.isAdmin
}
res.send("Added");
});
app.delete('/users/:userId', auth, function (req, res) {
const user = req.params;
for (var i = 0; i < users.length; i++) {
if (users[i].userId == user.userId) {
users.splice(i,1);
res.send("Deleted");
return ;
}
}
res.send("Not exist user");
return ;
});
// 사용자 추가 시에 admin 여부도 추가해야 함
var server = app.listen(80);