Showing
1 changed file
with
37 additions
and
52 deletions
... | @@ -2,84 +2,63 @@ var express = require('express'); | ... | @@ -2,84 +2,63 @@ var express = require('express'); |
2 | var cheerio = require('cheerio'); | 2 | var cheerio = require('cheerio'); |
3 | var request = require('request'); | 3 | var request = require('request'); |
4 | var mysql = require('mysql'); | 4 | var mysql = require('mysql'); |
5 | -var sha256 = require('js-sha256'); | ||
6 | 5 | ||
7 | // 설명 | 6 | // 설명 |
8 | var client = require('cheerio-httpcli'); | 7 | var client = require('cheerio-httpcli'); |
9 | -var passport = require('passport') | 8 | +var passport = require('passport'), KakaoStrategy = require('passport-kakao').Strategy; |
10 | -var KakaoStrategy = require('passport-kakao').Strategy; | ||
11 | var router = express.Router(); | 9 | var router = express.Router(); |
12 | 10 | ||
13 | // 설명 | 11 | // 설명 |
14 | -var kakaoKey = { | 12 | +passport.use(new KakaoStrategy({ |
15 | - clientID : 'd7ba37067bddfb0661513607bb5eddef', | 13 | + |
16 | - clientSecret : 'NZQsjsqhzDnjjMqFuEY805wBM1AwIsBY', | 14 | + clientID : '5634a5f8ca5c9a5eb378d6b6e6e869a0', |
17 | - callbackURL : 'http://localhost:3000/api/auth/kakao/callback' | 15 | + callbackURL :'/auth/login/kakao/callback', |
18 | -}; | 16 | + //clientSecret : 'eUtJGtlLoCZJufevp3LKfDP0KOtZUV7R' |
17 | + | ||
18 | + }, function(accessToken, refreshToken,params, profile, done){ | ||
19 | 19 | ||
20 | -passport.use("kakao-login", new KakaoStrategy(kakaoKey, function(accessToken, refreshToken, profile, done){ | 20 | + //사용자 정보 -> profile |
21 | - var _profile = profile._json; | 21 | + loginByThirdparty(accessToken, refreshToken, profile); |
22 | - console.log("error1"); | 22 | + console.log("(!)로그인 : " + profile._json.id+"("+profile._json.properties.nickname +")"); |
23 | - //사용자 정보는 profile에 | 23 | + |
24 | - loginByThirdparty({ | 24 | + //return done(null,profile) |
25 | - 'auth_type': 'kakao', | 25 | + return done(null, { |
26 | - 'auth_id': _profile.id, | 26 | + 'user_id': profile._json.id, |
27 | - 'auth_name': _profile.properties.nickname, | 27 | + 'nickname': profile._json.properties.nickname |
28 | - 'auth_email': _profile.id | 28 | + |
29 | - }, done); | 29 | + }); |
30 | - console.log("(!)로그인 : " + profile._json.id + "(" + profile._json.properties.nickname + ")" ); | 30 | + } |
31 | - console.log("error2"); | 31 | +)); |
32 | -})); | ||
33 | 32 | ||
34 | // kakao 로그인, // passport.authenticate('kakao',{state: "myStateValue"}) | 33 | // kakao 로그인, // passport.authenticate('kakao',{state: "myStateValue"}) |
35 | -router.get('/api/auth/kakao', passport.authenticate('kakao-login')); | 34 | +router.get('/auth/login/kakao', passport.authenticate('kakao')); |
36 | 35 | ||
37 | // kakao 로그인 연동 콜백 | 36 | // kakao 로그인 연동 콜백 |
38 | -router.get('/api/auth/kakao/callback', passport.authenticate('kakao-login', { | 37 | +router.get('/auth/login/kakao/callback', passport.authenticate('kakao', { |
38 | + | ||
39 | //session: false, | 39 | //session: false, |
40 | - successRedirect: '/routes/mytoons', | 40 | + successRedirect: '/mytoons', |
41 | failureRedirect: '/' | 41 | failureRedirect: '/' |
42 | }) | 42 | }) |
43 | ); | 43 | ); |
44 | 44 | ||
45 | // 설명 | 45 | // 설명 |
46 | -function loginByThirdparty(info, done) { | 46 | +function loginByThirdparty(accessToken, refreshToken, profile) { |
47 | - console.log("error3"); | ||
48 | // 예전 코드는 MySQL 버젼이 맞지 않음 | 47 | // 예전 코드는 MySQL 버젼이 맞지 않음 |
49 | // var sql = 'INSERT INTO `user`(id) VALUES(?) ON DUPLICATE KEY(PRIMARY) UPDATE id=(?);' | 48 | // var sql = 'INSERT INTO `user`(id) VALUES(?) ON DUPLICATE KEY(PRIMARY) UPDATE id=(?);' |
50 | - var sql = 'select *from `user` where `user_id` = ?'; | 49 | + var sql = "INSERT INTO `user` (id) VALUES (?) ON DUPLICATE KEY UPDATE id=id"; |
51 | - | 50 | + var kid=[profile._json.id]; |
52 | - connection.query(sql, info.auth_id, function(err,result){ | 51 | + connection.query(sql,kid,function(err,result){ |
53 | if (err) { | 52 | if (err) { |
54 | - return done(err); | 53 | + console.log("로그인 쿼리중 에러 : " + err); |
55 | } else { | 54 | } else { |
56 | - if (result.length === 0) { | 55 | + console.log("로그인 DB처리 완료!"); |
57 | - // 신규 유저는 회원 가입 이후 로그인 처리 | ||
58 | - var stmt_thridparty_signup = 'insert into `user` set `user_id`= ?, `nickname`= ?'; | ||
59 | - connection.query(stmt_thridparty_signup, [info.auth_id, info.auth_name], function (err, result) { | ||
60 | - if(err){ | ||
61 | - return done(err); | ||
62 | - }else{ | ||
63 | - done(null, { | ||
64 | - 'user_id': info.auth_id, | ||
65 | - 'nickname': info.auth_name | ||
66 | - }); | ||
67 | - } | ||
68 | - }); | ||
69 | - } else { | ||
70 | - //기존유저 로그인 처리 | ||
71 | - console.log('Old User'); | ||
72 | - done(null, { | ||
73 | - 'user_id': result[0].user_id, | ||
74 | - 'nickname': result[0].nickname | ||
75 | - }); | ||
76 | - } | ||
77 | } | 56 | } |
78 | }); | 57 | }); |
79 | } | 58 | } |
80 | 59 | ||
81 | // 설명 | 60 | // 설명 |
82 | -router.get('/api/auth/logout/kakao',function (req,res) { | 61 | +router.get('/auth/logout/kakao',function (req,res) { |
83 | req.logout(); | 62 | req.logout(); |
84 | res.redirect('/'); | 63 | res.redirect('/'); |
85 | }) | 64 | }) |
... | @@ -274,6 +253,9 @@ function getAllToons() { | ... | @@ -274,6 +253,9 @@ function getAllToons() { |
274 | }); | 253 | }); |
275 | }); | 254 | }); |
276 | 255 | ||
256 | + | ||
257 | + | ||
258 | + | ||
277 | //네이버 웹툰 | 259 | //네이버 웹툰 |
278 | var allWeeklyToonsUrl = "http://comic.naver.com/webtoon/weekday.nhn"; | 260 | var allWeeklyToonsUrl = "http://comic.naver.com/webtoon/weekday.nhn"; |
279 | request(allWeeklyToonsUrl,function (err, res, html) { | 261 | request(allWeeklyToonsUrl,function (err, res, html) { |
... | @@ -316,6 +298,9 @@ function getAllToons() { | ... | @@ -316,6 +298,9 @@ function getAllToons() { |
316 | }); | 298 | }); |
317 | } | 299 | } |
318 | }); | 300 | }); |
301 | + | ||
302 | + | ||
303 | + | ||
319 | allWebtoons = allWebtoonList; | 304 | allWebtoons = allWebtoonList; |
320 | }; | 305 | }; |
321 | 306 | ... | ... |
-
Please register or login to post a comment