Authored by 郭成尧

show-img-handle

... ... @@ -65,7 +65,8 @@ class Reg {
localCss: true,
width750: true,
inviteValue: inviteValue,
countrys: req.ctx(RegServiceModel).getAreaData() // 地区信息列表
countrys: req.ctx(RegServiceModel).getAreaData(), // 地区信息列表
captchaShow: req.yoho.captchaShow
});
})().catch(next);
}
... ...
... ... @@ -42,6 +42,7 @@ class SmsLogin {
localCss: true,
banner: banner,
countrys: req.ctx(RegServiceModel).getAreaData(), // 地区信息列表
captchaShow: req.yoho.captchaShow,
backUrl: 'javascript:history.go(-1)', // eslint-disable-line
loginUrl: '/passport/login',
registerUrl: '/passport/reg/index', // 注册的URL链接
... ...
... ... @@ -12,6 +12,37 @@ const cache = global.yoho.cache;
const log = global.yoho.logger;
const geetest = require('./geetest');
const captcha = require('./captcha');
const imgCheck = require('../models/imgcheck');
/**
* 加载验证码
*/
const load = (req, res, next) => {
co(function* () {
let isNeedImgCheckApiData = yield req.ctx(imgCheck).isNeedImgCheck();
req.yoho.captchaShow = true;
if (_.parseInt(_.get(isNeedImgCheckApiData, 'code')) === 200) {
req.yoho.captchaShow = _.get(isNeedImgCheckApiData, 'data');
}
res.locals.useGeetest = !_.get(req.app.locals.wap, 'geetest.validation', true); // 使用极验证
res.locals.useGeetest = !req.yoho.captchaShow && res.locals.useGeetest;
if (_.has(res, 'locals.loadJs')) {
res.locals.loadJs.push({
src: global.yoho.config.geetestJs
});
} else {
res.locals.loadJs = [
{
src: global.yoho.config.geetestJs
}
];
}
return next();
})();
};
/**
* 验证验证码
... ... @@ -61,7 +92,7 @@ const check = (req, res, next) => {
}
// 使用极验证
let useGeetest = !_.get(req.app.locals.wap, 'geetest.validation', false);
let useGeetest = !_.get(req.app.locals.wap, 'geetest.validation', true);
// 某次请求极验证调用注册失败,强制使用自有图形验证码
if (req.session.useYohoCaptcha) {
... ... @@ -72,26 +103,7 @@ const check = (req, res, next) => {
});
};
/**
* 加载验证码
*/
const load = (req, res, next) => {
res.locals.useGeetest = !_.get(req.app.locals.wap, 'geetest.validation', false); // 使用极验证
if (_.has(res, 'locals.loadJs')) {
res.locals.loadJs.push({
src: global.yoho.config.geetestJs
});
} else {
res.locals.loadJs = [
{
src: global.yoho.config.geetestJs
}
];
}
return next();
};
module.exports = {
check,
load
load,
check
};
... ...
... ... @@ -37,4 +37,14 @@ module.exports = class extends global.yoho.BaseModel {
return result;
});
}
/**
* 是否需要验证码
*/
isNeedImgCheck() {
return this.get({
api: global.yoho.ServiceAPI,
url: 'smart/way'
});
}
};
... ...
... ... @@ -35,8 +35,6 @@ router.post('/passport/login/auth', validateCode.check, login.local.login);
// 检查登录状态
router.get('/passport/login/check', login.common.check);
router.post('/passport/sms_login/step1_check', validateCode.check, smsLogin.indexCheck);
router.get('/passport/sms_login/token.json',
smsLogin.tokenBefore,
smsLogin.token); // only ajax;
... ... @@ -127,13 +125,11 @@ router.get('/passport/login',
validateCode.load,
login.common.beforeLogin,
login.common.clearCookie,
login.loginShowCaptchaByIp,
loginNew.loginPage); // 普通登录
router.get('/passport/international',
validateCode.load,
login.common.beforeLogin,
login.common.clearCookie,
login.loginShowCaptchaByIp,
loginNew.international); // 国际账号登录
router.get('/passport/reg/index',
validateCode.load,
... ... @@ -144,6 +140,7 @@ router.post('/passport/register-new',
router.get('/passport/sms_login',
validateCode.load,
smsLogin.smsLoginPage); // 短信验证码登录
router.post('/passport/sms_login/step1_check', smsLogin.indexCheck);
// 兼容老的路由
router.get('/signin.html',
... ... @@ -160,7 +157,6 @@ router.get('/login.html',
validateCode.load,
login.common.beforeLogin,
login.common.clearCookie,
login.loginShowCaptchaByIp,
loginNew.international); // 国际账号登录
router.get('/passport/back/mobile', validateCode.load, back.backByMobile); // 通过手机找回密码
... ...
... ... @@ -9,7 +9,6 @@
<div class="input-container row has-eye">
<input id="pwd" class="pwd input" type="password" placeholder="密码">
</div>
{{!--图片验证--}}
<div data-userverify="{{captchaShow}}" data-geetest="{{useGeetest}}" id="js-img-check"></div>
<span id="btn-login" class="btn btn-login disble row">登录</span>
... ...
... ... @@ -10,9 +10,7 @@
<span id="code" class="invite-code">潮流口令</span>
<input id="invite-code" class="input code" type="text" placeholder="好友潮流口令(非必填)">
</div>
{{!--图片验证--}}
<div data-geetest="{{useGeetest}}" id="js-img-check"></div>
<div data-userverify="{{captchaShow}}" data-geetest="{{useGeetest}}" id="js-img-check"></div>
<span id="btn-next" class="btn btn-next disable row">下一步</span>
<p class="register-tip">Yoho!Family账号可登录Yoho!Buy有货、Yoho!Now、mars及SHOW</p>
... ...
... ... @@ -25,7 +25,7 @@
<label for="verifyCode" class="iconfont">&#xe71c;</label><input type="text" name="verifyCode" placeholder="请输入验证码"
class="verify-code-input"><button id="getVerifyCodeBtn" class="get-verify-code">获取验证码</button>
</div>
<div data-geetest="{{useGeetest}}" id="js-img-check" {{#unless useGeetest}} class="full-img-verify" {{/unless}}></div>
<div data-userverify="{{captchaShow}}" data-geetest="{{useGeetest}}" id="js-img-check" {{#unless useGeetest}} class="full-img-verify" {{/unless}}></div>
<button id="smsLoginBtn" class="sms-login-btn">登录</button>
<div class="other-info">
{{#if openPassword}}
... ...