Showing
5 changed files
with
27 additions
and
10 deletions
1 | +'use strict'; | ||
2 | +const _ = require('lodash'); | ||
1 | const Geetest = require('geetest'); | 3 | const Geetest = require('geetest'); |
2 | 4 | ||
3 | const captcha = new Geetest({ | 5 | const captcha = new Geetest({ |
@@ -21,6 +23,14 @@ const geetest = { | @@ -21,6 +23,14 @@ const geetest = { | ||
21 | }).catch(next); | 23 | }).catch(next); |
22 | }, | 24 | }, |
23 | validate(req, res, next) { | 25 | validate(req, res, next) { |
26 | + | ||
27 | + // 使用极验证 | ||
28 | + let useGeetest = _.get(req.app.locals.wap, 'geetest.validation', true); | ||
29 | + | ||
30 | + if (!useGeetest) { | ||
31 | + return next(); | ||
32 | + } | ||
33 | + | ||
24 | captcha.validate({ | 34 | captcha.validate({ |
25 | challenge: 'xxx', | 35 | challenge: 'xxx', |
26 | validate: 'xxx', | 36 | validate: 'xxx', |
@@ -29,9 +39,10 @@ const geetest = { | @@ -29,9 +39,10 @@ const geetest = { | ||
29 | if (success) { | 39 | if (success) { |
30 | return next(); | 40 | return next(); |
31 | } | 41 | } |
32 | - return res.send(403, { | ||
33 | - code: 403, | ||
34 | - message: 'captcha error' | 42 | + return res.send({ |
43 | + code: 400, | ||
44 | + message: '验证码错误', | ||
45 | + captchaShow: true | ||
35 | }); | 46 | }); |
36 | }); | 47 | }); |
37 | } | 48 | } |
@@ -111,6 +111,7 @@ const local = { | @@ -111,6 +111,7 @@ const local = { | ||
111 | res.render('login', { | 111 | res.render('login', { |
112 | width750: true, | 112 | width750: true, |
113 | loginIndex: true, // 模板中使用JS的标识 | 113 | loginIndex: true, // 模板中使用JS的标识 |
114 | + useGeetest: _.get(req.app.locals.wap, 'geetest.validation', true), // 使用极验证 | ||
114 | 115 | ||
115 | // captchaShow: _.get(req.session, 'login.errorCount') <= 0, | 116 | // captchaShow: _.get(req.session, 'login.errorCount') <= 0, |
116 | captchaShow: true, // 170306 因为暴力破解密码问题,要求每次都展示验证码 | 117 | captchaShow: true, // 170306 因为暴力破解密码问题,要求每次都展示验证码 |
@@ -169,6 +170,7 @@ const local = { | @@ -169,6 +170,7 @@ const local = { | ||
169 | // 返回的URL链接 | 170 | // 返回的URL链接 |
170 | backUrl: 'javascript:history.go(-1)', // eslint-disable-line | 171 | backUrl: 'javascript:history.go(-1)', // eslint-disable-line |
171 | loginInternational: true, // 模板中使用JS的标识 | 172 | loginInternational: true, // 模板中使用JS的标识 |
173 | + useGeetest: _.get(req.app.locals.wap, 'geetest.validation', true), // 使用极验证 | ||
172 | 174 | ||
173 | // captchaShow: _.get(req.session, 'login.errorCount') <= 0, | 175 | // captchaShow: _.get(req.session, 'login.errorCount') <= 0, |
174 | captchaShow: true, // 170306 因为暴力破解密码问题,要求每次都展示验证码 | 176 | captchaShow: true, // 170306 因为暴力破解密码问题,要求每次都展示验证码 |
@@ -192,7 +194,11 @@ const local = { | @@ -192,7 +194,11 @@ const local = { | ||
192 | _.set(req.session, 'login.errorCount', 3); | 194 | _.set(req.session, 'login.errorCount', 3); |
193 | } | 195 | } |
194 | 196 | ||
195 | - if (count <= 0) { | 197 | + // 使用极验证 |
198 | + let useGeetest = _.get(req.app.locals.wap, 'geetest.validation', true); | ||
199 | + | ||
200 | + // 有货自有验证码 | ||
201 | + if (count <= 0 && !useGeetest) { | ||
196 | let captchaInput = req.body.captcha; | 202 | let captchaInput = req.body.captcha; |
197 | let captchaCode = _.get(req.session, 'captcha'); | 203 | let captchaCode = _.get(req.session, 'captcha'); |
198 | let testCode = req.body.yohobuy; | 204 | let testCode = req.body.yohobuy; |
@@ -44,7 +44,7 @@ router.get('/passport/login', login.common.beforeLogin, login.local.loginPage); | @@ -44,7 +44,7 @@ router.get('/passport/login', login.common.beforeLogin, login.local.loginPage); | ||
44 | router.get('/passport/international', login.common.beforeLogin, login.local.international); | 44 | router.get('/passport/international', login.common.beforeLogin, login.local.international); |
45 | 45 | ||
46 | // 本地登录 | 46 | // 本地登录 |
47 | -router.post('/passport/login/auth', login.local.login); | 47 | +router.post('/passport/login/auth', geetest.validate, login.local.login); |
48 | 48 | ||
49 | // SMS 短信 | 49 | // SMS 短信 |
50 | router.use('/passport/sms_login', login.common.beforeLogin, smsLogin.beforeIn); | 50 | router.use('/passport/sms_login', login.common.beforeLogin, smsLogin.beforeIn); |
@@ -9,8 +9,8 @@ | @@ -9,8 +9,8 @@ | ||
9 | <div class="input-container row has-eye"> | 9 | <div class="input-container row has-eye"> |
10 | <input id="pwd" class="pwd input" type="password" placeholder="密码"> | 10 | <input id="pwd" class="pwd input" type="password" placeholder="密码"> |
11 | </div> | 11 | </div> |
12 | - <div id="js-img-check" {{#captchaShow }}data-init{{/captchaShow}}></div> | 12 | + <div data-geetest="{{useGeetest}}" id="js-img-check" {{#captchaShow }}data-init{{/captchaShow}}></div> |
13 | 13 | ||
14 | <span id="btn-login" class="btn btn-login disble row">登录</span> | 14 | <span id="btn-login" class="btn btn-login disble row">登录</span> |
15 | </div> | 15 | </div> |
16 | -</div> | ||
16 | +</div> |
@@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
8 | <div class="input-container row has-eye"> | 8 | <div class="input-container row has-eye"> |
9 | <input id="pwd" class="pwd input" type="password" placeholder="密码"> | 9 | <input id="pwd" class="pwd input" type="password" placeholder="密码"> |
10 | </div> | 10 | </div> |
11 | - <div id="js-img-check" {{#captchaShow }}data-init{{/captchaShow}}></div> | 11 | + <div data-geetest="{{useGeetest}}" id="js-img-check" {{#captchaShow }}data-init{{/captchaShow}}></div> |
12 | <span id="btn-login" class="btn btn-login disable">登录</span> | 12 | <span id="btn-login" class="btn btn-login disable">登录</span> |
13 | <p class="op-container"> | 13 | <p class="op-container"> |
14 | <a class="op-item internat" href={{internationalUrl}}>海外手机</a> | 14 | <a class="op-item internat" href={{internationalUrl}}>海外手机</a> |
@@ -23,12 +23,12 @@ | @@ -23,12 +23,12 @@ | ||
23 | <a class="alipay" href={{aliLoginUrl}}></a> | 23 | <a class="alipay" href={{aliLoginUrl}}></a> |
24 | </div> | 24 | </div> |
25 | </div> | 25 | </div> |
26 | - | 26 | + |
27 | <div class="login-tip"> | 27 | <div class="login-tip"> |
28 | <div class="info-icon"></div> | 28 | <div class="info-icon"></div> |
29 | Yoho!Family账号可登录Yoho!Buy有货 | 29 | Yoho!Family账号可登录Yoho!Buy有货 |
30 | </div> | 30 | </div> |
31 | - | 31 | + |
32 | <div id="retrive-pwd-mask" class="mask"></div> | 32 | <div id="retrive-pwd-mask" class="mask"></div> |
33 | <ul id="retrive-pwd-ways" class="retrive-pwd-ways"> | 33 | <ul id="retrive-pwd-ways" class="retrive-pwd-ways"> |
34 | <li> | 34 | <li> |
-
Please register or login to post a comment