이재용

app.js updated

Showing 1 changed file with 206 additions and 0 deletions
1 +var express = require('express');
2 +var app = express();
3 +var bodyParser = require('body-parser');
4 +var session = require('express-session')
5 +
6 +app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))
7 +app.use(bodyParser.urlencoded({ extended: false }));
8 +app.use(bodyParser.json());
9 +
10 +
11 +var users = new Array();
12 +users[0] = {
13 + "userId" : "aaa",
14 + "name" : "jin",
15 + "password" : "1234",
16 + "isAdmin" : true
17 +}
18 +users[1] = {
19 + "userId" : "asd",
20 + "name" : "kim",
21 + "password" : "1234",
22 + "isAdmin" : false
23 +}
24 +
25 +app.put('/login', function (req, res) {
26 + if(req.session.userId!=null)
27 + {
28 + res.send("이미 로그인 상태입니다")
29 + }
30 + else
31 + {
32 + var users_num=users.length
33 + console.log(users_num)
34 + var checking=0
35 + while(users_num>0)
36 + {
37 + console.log(users[users_num-1].userId)
38 + if (users[users_num-1].userId==req.body.userId)
39 + {
40 + checking=1
41 + console.log("id ok")
42 + if(users[users_num-1].password==req.body.password)
43 + {
44 + req.session.userId=req.body.userId
45 + if(users[users_num-1].isAdmin==true)
46 + {
47 + req.session.isAdmin=1
48 + res.send("login as admin");
49 + console.log("admin ok")
50 + }
51 + else
52 + {
53 + console.log("guset ok")
54 + res.send("login as guest");
55 + }
56 + }
57 + else
58 + {
59 + console.log("passwd ok")
60 + res.send("wrong password");
61 + }
62 + }
63 +
64 +
65 + users_num-=1
66 + }
67 +
68 + // users 배열에서 찾도록 처리 해야 함
69 + // admin 여부를 확인하여 체크
70 + // req.body.id : ID -> req.body.userId 로 변경했습니다
71 + // req.body.name : 패스워드 -> req.body.password 로 변경했습니다
72 +if (checking==0)
73 +{
74 + res.send("no id")
75 +}
76 + }
77 +});
78 +app.put('/logout', function (req, res) {
79 + // Logout
80 + if(req.session.userId!= null&&req.session.userId==req.body.userId)
81 + {// 세션 유효 여부를 체크하고 세션 Delete
82 + req.session.userId = null
83 + req.session.isAdmin= 0
84 + res.send("LogOut");
85 + }
86 + else if(req.session.userId!=null&&req.session.userId!=req.body.userId)
87 + {
88 + res.send("로그아웃 body를 다시 한번 해보세요(현재 로그인 된 아이디와 다름")
89 + }
90 +
91 + else
92 + {
93 + res.send("already Logout")
94 + }
95 +
96 +});
97 +
98 +var auth = function (req, res, next) {
99 + // Session Check
100 + // 어드민 여부 체크 필요
101 + if (req.session.userId != null)
102 + {
103 + if(req.session.isAdmin ==1)
104 + {
105 + next();
106 + }
107 + else
108 + {
109 + res.send("only admin can use this function")
110 + }
111 + }
112 + else
113 + res.send("Error");
114 +
115 +};
116 +app.get('/users/:userId', auth,function (req, res) {
117 + var users_num_get=users.length// get User Information
118 + var user_id=String(req.params.userId)
119 + console.log(user_id)
120 + var checking2=0
121 + while(users_num_get>0)
122 + {
123 +
124 + if(users[users_num_get-1].userId==user_id)
125 + {
126 + checking2=1
127 + res.send(users[users_num_get-1]);
128 + res.end()
129 + }
130 + else
131 + {
132 + console.log("")
133 + }
134 + users_num_get-=1
135 +
136 + }
137 +if(checking2==0)
138 +{
139 + res.send("해당 아이디가 없습니다.")
140 +}
141 +});
142 +app.post('/users',auth, function(req,res)
143 +{
144 + var num=users.length
145 + users[num]=
146 + {
147 + "userId" : req.body.userId,
148 + "name" : req.body.name,
149 + "password" : req.body.password,
150 + "isAdmin" : req.body.isAdmin
151 + }
152 + console.log(users[num])
153 + res.send("사용자가 생성되었습니다.")
154 +
155 +
156 +});
157 +// 사용자 추가 시에 admin 여부도 추가해야 함
158 +app.put('/users',auth, function(req,res)
159 +{
160 + num=users.length
161 + checking2=0
162 + while(num>0)
163 + {
164 + if(users[num-1].userId==req.body.userId)
165 + {
166 + users[num-1]=
167 + {
168 + "userId" : req.body.userId,
169 + "name" : req.body.name,
170 + "password" : req.body.password,
171 + "isAdmin" : req.body.isAdmin
172 + }
173 + console.log(users[num-1])
174 + res.send("사용자 정보가 변경되었습니다.")
175 + checking2=1
176 + }
177 + num-=1
178 +}
179 +if (checking2==0)
180 +{
181 + res.send("해당 사용자가 없습니다")
182 +}
183 +
184 +});
185 +app.delete('/users/:userId',auth, function(req,res)
186 +{
187 + var id_check=req.params.userId
188 + num=users.length
189 + checking2=0
190 + while(num>0)
191 + {
192 + if(users[num-1].userId==id_check)
193 + {
194 + users.splice(num-1,1)
195 + checking2=1
196 + res.send("삭제가 완료되었습니다.")
197 + }
198 + num-=1
199 +}
200 +if (checking2==0)
201 +{
202 + res.send("해당 사용자가 없습니다")
203 +}
204 +});
205 +
206 +var server = app.listen(80);