hyunjong

네이버, 다음 로그인 에러 처리, 클린코드

...@@ -9,27 +9,27 @@ var NaverStrategy = require('passport-naver').Strategy; ...@@ -9,27 +9,27 @@ var NaverStrategy = require('passport-naver').Strategy;
9 var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy; 9 var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;
10 var router = express.Router(); 10 var router = express.Router();
11 11
12 -// 설명 12 +// kakao login API
13 var kakaoKey = { 13 var kakaoKey = {
14 clientID : '5634a5f8ca5c9a5eb378d6b6e6e869a0', 14 clientID : '5634a5f8ca5c9a5eb378d6b6e6e869a0',
15 callbackURL : '/auth/login/kakao/callback' 15 callbackURL : '/auth/login/kakao/callback'
16 }; 16 };
17 17
18 -// 18 +// naver login API
19 var naverKey = { 19 var naverKey = {
20 clientID : 'OHmCrpQuVFnIEB4GkmF_', 20 clientID : 'OHmCrpQuVFnIEB4GkmF_',
21 callbackURL : '/auth/login/naver/callback', 21 callbackURL : '/auth/login/naver/callback',
22 clientSecret : 'BBgcRdnj0M' 22 clientSecret : 'BBgcRdnj0M'
23 }; 23 };
24 24
25 -// 25 +// google login API
26 var googleKey = { 26 var googleKey = {
27 clientID : '924802195853-ir977i2ohnddaaninlqlbeg6sov629hq.apps.googleusercontent.com', 27 clientID : '924802195853-ir977i2ohnddaaninlqlbeg6sov629hq.apps.googleusercontent.com',
28 callbackURL : '/auth/login/google/callback', 28 callbackURL : '/auth/login/google/callback',
29 clientSecret : 'NaWeoJouUzYq4VfBesTkdUfA' 29 clientSecret : 'NaWeoJouUzYq4VfBesTkdUfA'
30 }; 30 };
31 31
32 -// 32 +// kakao passport
33 passport.use(new KakaoStrategy(kakaoKey, 33 passport.use(new KakaoStrategy(kakaoKey,
34 function(accessToken, refreshToken,params, profile, done) { 34 function(accessToken, refreshToken,params, profile, done) {
35 console.log(profile); 35 console.log(profile);
...@@ -41,7 +41,7 @@ passport.use(new KakaoStrategy(kakaoKey, ...@@ -41,7 +41,7 @@ passport.use(new KakaoStrategy(kakaoKey,
41 } 41 }
42 )); 42 ));
43 43
44 -// 44 +// naver passport
45 passport.use(new NaverStrategy(naverKey, 45 passport.use(new NaverStrategy(naverKey,
46 function (accessToken, refreshToken, profile, done) { 46 function (accessToken, refreshToken, profile, done) {
47 console.log(profile); 47 console.log(profile);
...@@ -53,7 +53,7 @@ passport.use(new NaverStrategy(naverKey, ...@@ -53,7 +53,7 @@ passport.use(new NaverStrategy(naverKey,
53 } 53 }
54 )); 54 ));
55 55
56 -// 56 +// google passport
57 passport.use(new GoogleStrategy(googleKey, 57 passport.use(new GoogleStrategy(googleKey,
58 function (accessToken, refreshToken, profile, done) { 58 function (accessToken, refreshToken, profile, done) {
59 console.log(profile); 59 console.log(profile);
...@@ -68,29 +68,28 @@ passport.use(new GoogleStrategy(googleKey, ...@@ -68,29 +68,28 @@ passport.use(new GoogleStrategy(googleKey,
68 // kakao 로그인, 로그인 콜백 68 // kakao 로그인, 로그인 콜백
69 router.get('/auth/login/kakao', passport.authenticate('kakao')); 69 router.get('/auth/login/kakao', passport.authenticate('kakao'));
70 router.get('/auth/login/kakao/callback', passport.authenticate('kakao', { 70 router.get('/auth/login/kakao/callback', passport.authenticate('kakao', {
71 - successRedirect: '/mytoons', 71 + successRedirect: '/mytoons',
72 - failureRedirect: '/' 72 + failureRedirect: '/'
73 - }) 73 + })
74 ); 74 );
75 75
76 -// naver 로그인 76 +// naver 로그인, 로그인 콜백
77 router.get('/auth/login/naver', passport.authenticate('naver')); 77 router.get('/auth/login/naver', passport.authenticate('naver'));
78 -router.get('/auth/login/naver/callback', 78 +router.get('/auth/login/naver/callback', passport.authenticate('naver', {
79 - passport.authenticate('naver', { 79 + successRedirect: '/mytoons',
80 - successRedirect: '/mytoons', 80 + failureRedirect: '/'
81 - failureRedirect: '/'
82 }) 81 })
83 ); 82 );
84 83
85 // facebook 로그인, 로그인 콜백 84 // facebook 로그인, 로그인 콜백
86 router.get('/auth/login/google', passport.authenticate('google', { scope: ['email profile'] })); 85 router.get('/auth/login/google', passport.authenticate('google', { scope: ['email profile'] }));
87 router.get('/auth/login/google/callback', passport.authenticate('google', { 86 router.get('/auth/login/google/callback', passport.authenticate('google', {
88 - successRedirect: '/mytoons', 87 + successRedirect: '/mytoons',
89 - failureRedirect: '/' 88 + failureRedirect: '/'
90 }) 89 })
91 ); 90 );
92 91
93 -// 설명 92 +// 로그인 처리
94 function loginByThirdparty(info, done) { 93 function loginByThirdparty(info, done) {
95 var stmt_duplicated = "select *from `user` where id = id"; 94 var stmt_duplicated = "select *from `user` where id = id";
96 //'select *from `user` where `id` = ? 95 //'select *from `user` where `id` = ?
...@@ -125,27 +124,27 @@ function loginByThirdparty(info, done) { ...@@ -125,27 +124,27 @@ function loginByThirdparty(info, done) {
125 }); 124 });
126 } 125 }
127 126
128 -router.get('/login', function(req,res){ 127 +router.get('/login', function(req,res) {
129 res.render('login_page') 128 res.render('login_page')
130 }) 129 })
131 130
132 131
133 // 라우터 설정, 카카오 132 // 라우터 설정, 카카오
134 router.get('/auth/logout/kakao',function (req,res) { 133 router.get('/auth/logout/kakao',function (req,res) {
135 - req.logout(); 134 + req.logout();
136 - res.redirect('/'); 135 + res.redirect('/');
137 }) 136 })
138 137
139 // 라우터 설정, 페이스북 138 // 라우터 설정, 페이스북
140 router.get('/auth/logout/naver',function (req,res) { 139 router.get('/auth/logout/naver',function (req,res) {
141 - req.logout(); 140 + req.logout();
142 - res.redirect('/'); 141 + res.redirect('/');
143 }) 142 })
144 143
145 // 라우터 설정, 구글 144 // 라우터 설정, 구글
146 router.get('/auth/logout/google',function (req,res) { 145 router.get('/auth/logout/google',function (req,res) {
147 - req.logout(); 146 + req.logout();
148 - res.redirect('/'); 147 + res.redirect('/');
149 }) 148 })
150 149
151 // 150 //
...@@ -153,87 +152,134 @@ function getLatestToon(titleid, day ,cb) { ...@@ -153,87 +152,134 @@ function getLatestToon(titleid, day ,cb) {
153 152
154 } 153 }
155 154
156 -function getDaumToons(_day){ 155 +//_day요일의 다음웹툰 불러오기
157 - // X요일 다음 웹툰 156 +function getDaumToons(_day) {
157 +
158 var day = _day; 158 var day = _day;
159 var day_name = day; 159 var day_name = day;
160 var daum = `http://webtoon.daum.net/data/pc/webtoon/list_serialized/${day}?timeStamp=1515819276574`; 160 var daum = `http://webtoon.daum.net/data/pc/webtoon/list_serialized/${day}?timeStamp=1515819276574`;
161 var site = 'daum'; 161 var site = 'daum';
162 162
163 - client.fetch(daum, {}, function (err, $, res, body) { 163 + client.fetch(daum, {}, function (err, $, res, body){
164 164
165 - var data = JSON.parse(body); 165 + var data = JSON.parse(body);
166 - var list = data["data"]; 166 + var list = data["data"];
167 167
168 - list.forEach(function (item, idx) { 168 + list.forEach(function (item, idx) {
169 169
170 - var webtoon_link = 'http://webtoon.daum.net/webtoon/view/' + item.nickname.toString(); 170 + var webtoon_link = 'http://webtoon.daum.net/webtoon/view/' + item.nickname.toString();
171 - var webtoon = { 171 + var webtoon = {
172 - toon_index : item.id, 172 + toon_index : item.id,
173 - name : item.title, 173 + name : item.title,
174 - thum_link : item.pcThumbnailImage.url, 174 + thum_link : item.pcThumbnailImage.url,
175 - webtoon_link : webtoon_link, 175 + webtoon_link : webtoon_link,
176 - week : day_name, 176 + week : day_name,
177 - site : site, 177 + site : site,
178 - latest : 0 178 + latest : 0
179 - }; 179 + };
180 180
181 allWebtoonList.push(webtoon); 181 allWebtoonList.push(webtoon);
182 - }); 182 + });
183 }); 183 });
184 } 184 }
185 185
186 -// 186 +// 네이버 전체 웹툰 불러오기
187 -function getNaverToons(){ 187 +function getNaverToons() {
188 +
188 var allWeeklyToonsUrl = "http://comic.naver.com/webtoon/weekday.nhn"; 189 var allWeeklyToonsUrl = "http://comic.naver.com/webtoon/weekday.nhn";
190 +
189 request(allWeeklyToonsUrl,function (err, res, html) { 191 request(allWeeklyToonsUrl,function (err, res, html) {
190 - if(!err){ 192 + if(!err){
191 - var $ = cheerio.load(html); 193 + var $ = cheerio.load(html);
192 - var p = Promise.resolve(); 194 + var p = Promise.resolve();
193 - var eachs = $(".thumb").each(function (i) { 195 + var eachs = $(".thumb").each(function (i) {
194 - var week = $(this).parent().parent().prev().attr('class'); 196 +
195 - var webtoon_link = "http://comic.naver.com" + $(this).children().first().attr('href'); 197 + var week = $(this).parent().parent().prev().attr('class');
196 - var thumb_link = $(this).children().first().children().first().attr('src'); 198 + var webtoon_link = "http://comic.naver.com" + $(this).children().first().attr('href');
197 - var name = $(this).next().text(); 199 + var thumb_link = $(this).children().first().children().first().attr('src');
198 - var titleid = webtoon_link.split('?')[1].split('&')[0].split('=')[1]; 200 + var name = $(this).next().text();
199 - var site = 'naver'; 201 + var titleid = webtoon_link.split('?')[1].split('&')[0].split('=')[1];
200 - var webtoon= { 202 + var site = 'naver';
201 - toon_index: titleid, 203 + var webtoon= {
202 - name : name, 204 + toon_index: titleid,
203 - thum_link : thumb_link, 205 + name : name,
204 - webtoon_link : webtoon_link, 206 + thum_link : thumb_link,
205 - week : week, 207 + webtoon_link : webtoon_link,
206 - site : site, 208 + week : week,
207 - latest : 0 209 + site : site,
208 - }; 210 + latest : 0
209 - allWebtoonList.push(webtoon); 211 + };
210 - }); 212 +
213 + allWebtoonList.push(webtoon);
214 + });
211 215
212 - p.then(function() { 216 + p.then(function() {
213 - i = 0; 217 + i = 0;
214 - allWebtoonList.forEach(function (webtoon) { 218 + allWebtoonList.forEach(function (webtoon) {
215 - var sql= "INSERT INTO `toon` (toon_index, name, thum_link, webtoon_link, week, site, latest) VALUES(?) ON DUPLICATE KEY UPDATE latest=latest"; 219 + var sql= "INSERT INTO `toon` (toon_index, name, thum_link, webtoon_link, week, site, latest) VALUES(?) ON DUPLICATE KEY UPDATE latest=latest";
216 - var values=[webtoon.toon_index, webtoon.name, webtoon.thum_link, webtoon.webtoon_link,webtoon.week, webtoon.site, webtoon.latest]; 220 + var values=[webtoon.toon_index, webtoon.name, webtoon.thum_link, webtoon.webtoon_link,webtoon.week, webtoon.site, webtoon.latest];
217 - 221 +
218 - connection.query(sql,[values],function(err,result){ 222 + connection.query(sql,[values],function(err,result){
219 - if (err) { 223 + if (err) {
220 - console.log("웹툰 DB 에러 : " + err); 224 + console.log("웹툰 DB 에러 : " + err);
221 - } else { 225 + } else {
222 - console.log("웹툰 DB처리 완료!"); 226 + console.log("웹툰 DB처리 완료!");
223 - } 227 + }
224 - });
225 - })
226 }); 228 });
227 - } 229 + })
230 + });
231 + }
228 }); 232 });
229 } 233 }
230 234
231 // 구현중 235 // 구현중
232 function getTomicsToons(){ 236 function getTomicsToons(){
237 + var allWeeklyToonsUrl = "https://www.lezhin.com/ko/scheduled";
233 238
239 + request(allWeeklyToonsUrl,function (err, res, html) {
240 + if(!err){
241 + var $ = cheerio.load(html);
242 + var p = Promise.resolve();
243 + var eachs = $(".thumb").each(function (i) {
244 + var week = $(this).parent().parent().prev().attr('class');
245 + var webtoon_link = "https://www.lezhin.com/ko" + $(this).children().first().attr('href');
246 + var thumb_link = $(this).children().first().children().first().attr('src');
247 + var name = $(this).next().text();
248 + var titleid = webtoon_link.split('?')[1].split('&')[0].split('=')[1];
249 + var site = 'naver';
250 + var webtoon= {
251 + toon_index: titleid,
252 + name : name,
253 + thum_link : thumb_link,
254 + webtoon_link : webtoon_link,
255 + week : week,
256 + site : site,
257 + latest : 0
258 + };
259 +
260 + allWebtoonList.push(webtoon);
261 + });
262 +
263 + p.then(function() {
264 + i = 0;
265 + allWebtoonList.forEach(function (webtoon) {
266 + var sql= "INSERT INTO `toon` (toon_index, name, thum_link, webtoon_link, week, site, latest) VALUES(?) ON DUPLICATE KEY UPDATE latest=latest";
267 + var values=[webtoon.toon_index, webtoon.name, webtoon.thum_link, webtoon.webtoon_link,webtoon.week, webtoon.site, webtoon.latest];
268 +
269 + connection.query(sql,[values],function(err,result){
270 + if (err) {
271 + console.log("웹툰 DB 에러 : " + err);
272 + } else {
273 + console.log("웹툰 DB처리 완료!");
274 + }
275 + });
276 + })
277 + });
278 + }
279 + });
234 } 280 }
235 281
236 -// 설명 282 +// 모든 웹튼을 담고있는 배열
237 allWebtoons = new Array(); 283 allWebtoons = new Array();
238 284
239 // 설명 285 // 설명
......
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.