Authored by 毕凯

Merge branch 'feature/loginIp' into 'release/5.6'

开发完成



See merge request !472
... ... @@ -504,7 +504,13 @@ exports.detail = (req, res) => {
isQuanYi: true
};
}
options.isApp = req.__USER__.isApp;
if (req.yoho.isApp || req.yoho.isWechat) {
options.isShowHeader = false;
} else {
options.isShowHeader = true;
}
res.render('detail', options);
};
... ...
{{#unless isApp}}
{{#if isShowHeader}}
<header class="yoho-header">
<a href="javascript:history.go(-1);" class="iconfont nav-back close"></a>
<p class="nav-title">{{title}}</p>
</header>
{{/unless}}
{{/if}}
{{#isQuanYi}}
<div class="mobile-container">
<div class="mobile-wrap yoho-page student">
<section class='s-text'>
<h6>权益1:新品立享9折</h6>
<p>1、学生购买指定原价新品时,可立即享受9折优惠,与VIP折扣不可同时享受。</p>
<h6>权益2:每1元返1个有货币</h6>
<p>1、学生购买指定商品时,以商品的实际成交金额计算,每1元返1个有货币;</p>
<p>2、返有货币时间:确认收货7日后,系统将自动将对应数量的有货币返至购买账户;</p>
<h6><b>权益一:</b>认证立赠100有货币</h6>
<p>认证成功,立即赠送100有货币。</p>
<h6><b>权益二:</b>新品立享9折</h6>
<p>学生购买指定原价新品时,可立即享受9折优惠,此折扣与VIP折扣不可同时享受。</p>
<h6><b>权益三:</b>每1元返1个有货币</h6>
<p>1、学生购买指定商品时,每1元返1个有货币(以商品的实际成交金额计算);</p>
<p>2、有货币返还时间:确认收货7日后,系统自动将对应数量的有货币返还至购买账户;</p>
<p>3、有货币有效期:获得当日至次年12月31日,逾期自动作废;</p>
<p>4、查看有货币:登录后,点击“个人中心”在“我的有货币”中可以查看有货币余额及明细。</p>
<h6>权益3:免单抽奖</h6>
<p>1、每月将在累计购物金额最高的学校中,抽取3名幸运学生用户,获得免单资格;</p>
<p>2、免单用户名单将在每月第1个工作日公布在有货微信公众号上,可关注【有货YOHOBUY】;</p>
<p>3、免单用户将在中奖次日获得与实付金额等额的现金券,使用时间:中奖当月。</p>
<h6>权益4:学生专享活动</h6>
<p>1、每月不定期的开展学生专享活动,可打开有货APP推送,及时查收学生专享活动通知。</p>
<h6><b>权益四:</b>分期付款</h6>
<p>开通有货分期后,可享受部分商品30天延后付款,最长6个月的分期付款,开启任性购物模式。</p>
<h6></h6>
</section>
</div>
... ... @@ -30,10 +28,26 @@
<div class="mobile-container">
<div class="mobile-wrap yoho-page student">
<section class='s-text'>
<h6>认证协议</h6>
<p>1、全日制大学及硕士博士研究生</p>
<p>2、学校在可选范围内,有部分学校可能暂未收录,后期会尽快添加</p>
<p>3、每个学号只能认证一个有货账户</p>
<h6>认证资格说明</h6>
<p>1、全日制大学本科、研究生、博士;</p>
<p>2、学校在可选范围之内,可能有部分学校暂未被收录,后期会尽快添加;</p>
<p>3、每个学号只能认证一个有货账户;</p>
</section>
<section class='s-text'>
<h6>特权详细说明</h6>
<p><b>权益一:</b>认证立赠100有货币</p>
<p>认证成功,立即赠送100有货币。</p><br>
<p><b>权益二:</b>新品立享9折</p>
<p>学生购买指定原价新品时,可立即享受9折优惠,此折扣与VIP折扣不可同时享受。</p><br>
<p><b>权益三:</b>每1元返1个有货币</p>
<p>1、学生购买指定商品时,每1元返1个有货币(以商品的实际成交金额计算);</p>
<p>2、有货币返还时间:确认收货7日后,系统自动将对应数量的有货币返还至购买账户;</p>
<p>3、有货币有效期:获得当日至次年12月31日,逾期自动作废;</p>
<p>4、查看有货币:登录后,点击“个人中心”在“我的有货币”中可以查看有货币余额及明细。</p><br>
<p><b>权益四:</b>分期付款</p>
<p>开通有货分期后,可享受部分商品30天延后付款,最长6个月的分期付款,开启任性购物模式。</p>
<h6></h6>
</section>
</div>
</div>
... ...
... ... @@ -37,7 +37,7 @@
<input type="checkbox" id="checkbox" class="regular-checkbox" style="visibility: hidden;">
<label class="checkbox icon-s-checked iconfont" for="checkbox">
</label>
同意<a class="s-blue" href='//m.yohobuy.com/activity/student/detail/renzhen?openby:yohobuy={"action":"go.h5","params":{"islogin":"N","url":"{{http}}//m.yohobuy.com/activity/student/detail/renzhen"}}'>Yoho!Buy有货学生认证协议</a>
同意<a class="s-blue" href='//m.yohobuy.com/activity/student/detail/renzhen'>Yoho!Buy有货学生认证协议</a>
</section>
<a class="s-submit" href="javascript:void(0);">立即认证</a>
</div>
... ...
... ... @@ -68,6 +68,8 @@ passport.use(new LocalStrategy({
AuthHelper.signinAes(area, username, password, shoppingKey, clientIp).then((result) => {
if (result.code && result.code === 200 && result.data.uid) {
done(null, result.data);
} if (result.code && result.code === 4189) {
done({code: 4189}, null);
} else {
done('账号或密码不正确', null);
}
... ...
... ... @@ -184,6 +184,15 @@ const local = {
passport.authenticate('local', (err, user) => {
if (err || !user) {
if (err.code === 4189) {
let obj = {
code: 4189,
message: err || '登录出错请重试',
url: '//m.yohobuy.com/passport/sms_login'
};
return res.json(obj);
} else {
let obj = {
code: 400,
message: err || '登录出错请重试',
... ... @@ -192,8 +201,8 @@ const local = {
};
cache.set(`loginErrorIp:${req.yoho.clientIp}`, true, 3600).catch(log.error);
res.json(obj);
return res.json(obj);
}
} else {
let refer = req.cookies.refer;
... ...
... ... @@ -23,7 +23,7 @@ const domains = {
module.exports = {
app: 'h5',
appVersion: '5.5.2', // 调用api的版本
appVersion: '5.6.0', // 调用api的版本
port: 6001,
siteUrl: '//m.yohobuy.com',
assetUrl: '//127.0.0.1:5001',
... ...
... ... @@ -96,6 +96,10 @@ function loginAuth(params, acc) {
showErrTip('登录成功');
location.href = res.href;
$loginBtn.text('登录成功');
} else if (data.code === 4189) {
localStorage.loginJumpUrl = $('#account').val();
localStorage.loginJump = 'true';
location.href = data.url;
} else {
$captcha.data('userverify', data.captchaShow);
if (data.captchaShow) {
... ...
... ... @@ -174,3 +174,10 @@ page = {
$(function() {
page.init();
});
// 多次登录失败跳短信认证填充手机号
if (localStorage.loginJump) {
$('.sms-login .title').text('身份验证');
$('.sms-login-msg').before('<p class="sms-login-msg">您的账号存在安全隐患需要进行身份验证</p>');
localStorage.removeItem('loginJump');
}
... ...
... ... @@ -147,3 +147,7 @@ page = {
$(function() {
page.init();
});
// 多次登录失败跳短信认证填充手机号
$('#phone-num').val(localStorage.loginJumpUrl);
localStorage.removeItem('loginJumpUrl');
... ...
... ... @@ -594,9 +594,13 @@
h6 {
font-size: 34px;
margin-top: 60px;
margin-top: 40px;
margin-bottom: 30px;
}
b {
font-weight: 700;
}
}
}
... ...