Authored by 毕凯

Merge branch 'feature/passport' of git.yoho.cn:fe/yohobuy-node into feature/passport

@@ -10,20 +10,20 @@ const service = require('../models/back-service'); @@ -10,20 +10,20 @@ const service = require('../models/back-service');
10 const passportHelper = require('../models/passport-helper'); 10 const passportHelper = require('../models/passport-helper');
11 const _ = require('lodash'); 11 const _ = require('lodash');
12 12
13 -//helpers.urlFormat = (url, qs) => {  
14 -// let localhost = 'http://localhost:6002';  
15 -//  
16 -// if (_.isEmpty(qs)) {  
17 -// return localhost + url;  
18 -// }  
19 -//  
20 -// const queryString = require('queryString');  
21 -//  
22 -// let str = queryString.stringify(qs);  
23 -//  
24 -// return localhost + url + '?' + str;  
25 -//  
26 -//}; 13 +helpers.urlFormat = (url, qs) => {
  14 + let localhost = 'http://localhost:6002';
  15 +
  16 + if (_.isEmpty(qs)) {
  17 + return localhost + url;
  18 + }
  19 +
  20 + const queryString = require('queryString');
  21 +
  22 + let str = queryString.stringify(qs);
  23 +
  24 + return localhost + url + '?' + str;
  25 +
  26 +};
27 27
28 /** 28 /**
29 * 找回密码主页面 29 * 找回密码主页面
@@ -33,8 +33,8 @@ const index = (req, res, next) => { @@ -33,8 +33,8 @@ const index = (req, res, next) => {
33 .then(result => { 33 .then(result => {
34 res.render('back/index', Object.assign({ 34 res.render('back/index', Object.assign({
35 module: 'passport', 35 module: 'passport',
36 - page : 'back-index',  
37 - title : '找回密码' 36 + page: 'back-index',
  37 + title: '找回密码'
38 }, result)); 38 }, result));
39 }) 39 })
40 .catch(next); 40 .catch(next);
@@ -54,7 +54,7 @@ const validateInputAPI = (req, res, next) => { @@ -54,7 +54,7 @@ const validateInputAPI = (req, res, next) => {
54 }) 54 })
55 .catch(err => { 55 .catch(err => {
56 res.json({ 56 res.json({
57 - code : 400, 57 + code: 400,
58 message: err 58 message: err
59 }); 59 });
60 }); 60 });
@@ -93,11 +93,11 @@ const sendCodePage = (req, res, next) => { @@ -93,11 +93,11 @@ const sendCodePage = (req, res, next) => {
93 service.sendCodeToUserAsync(inputInfo.type, inputInfo.phone, inputInfo.area) 93 service.sendCodeToUserAsync(inputInfo.type, inputInfo.phone, inputInfo.area)
94 .then(result => { 94 .then(result => {
95 95
96 - if (result.code && result.code === 200) {  
97 - return next();  
98 - } else { 96 + if (!(result.code && result.code === 200)) {
99 return res.redirect(helpers.urlFormat('/passport/back/index')); 97 return res.redirect(helpers.urlFormat('/passport/back/index'));
100 } 98 }
  99 +
  100 + return next();
101 }) 101 })
102 .catch(next); 102 .catch(next);
103 }; 103 };
@@ -105,22 +105,22 @@ const sendCodePage = (req, res, next) => { @@ -105,22 +105,22 @@ const sendCodePage = (req, res, next) => {
105 const saveInSession = (req, res) => { 105 const saveInSession = (req, res) => {
106 switch (req.inputInfo.type) { 106 switch (req.inputInfo.type) {
107 case 'email': 107 case 'email':
108 - {  
109 - req.session.email = req.inputInfo.phone;  
110 - res.redirect(helpers.urlFormat('/passport/back/sendEmail'));  
111 - break;  
112 - } 108 + {
  109 + req.session.email = req.inputInfo.phone;
  110 + res.redirect(helpers.urlFormat('/passport/back/sendEmail'));
  111 + break;
  112 + }
113 case 'mobile': 113 case 'mobile':
114 - {  
115 - req.session.mobile = req.inputInfo.phone;  
116 - req.session.area = req.inputInfo.area;  
117 - res.redirect(helpers.urlFormat('/passport/back/verification'));  
118 - break;  
119 - } 114 + {
  115 + req.session.mobile = req.inputInfo.phone;
  116 + req.session.area = req.inputInfo.area;
  117 + res.redirect(helpers.urlFormat('/passport/back/verification'));
  118 + break;
  119 + }
120 default: 120 default:
121 - {  
122 - res.redirect(helpers.urlFormat('/passport/back/index'));  
123 - } 121 + {
  122 + res.redirect(helpers.urlFormat('/passport/back/index'));
  123 + }
124 } 124 }
125 }; 125 };
126 126
@@ -142,24 +142,23 @@ const validateMobileAPI = (req, res, next) => { @@ -142,24 +142,23 @@ const validateMobileAPI = (req, res, next) => {
142 142
143 if (!passportHelper.validator.isAreaMobile(passportHelper.makeAreaMobile(area, mobile))) { 143 if (!passportHelper.validator.isAreaMobile(passportHelper.makeAreaMobile(area, mobile))) {
144 return res.json(ERR); 144 return res.json(ERR);
145 - } else {  
146 - return next();  
147 } 145 }
  146 +
  147 + next();
148 }; 148 };
149 149
150 const validateEmailInSession = (req, res, next) => { 150 const validateEmailInSession = (req, res, next) => {
151 let email = req.session.email || ''; 151 let email = req.session.email || '';
152 152
153 if (!email) { 153 if (!email) {
154 - res.redirect(helpers.urlFormat('/passport/back/index')); 154 + return res.redirect(helpers.urlFormat('/passport/back/index'));
155 } 155 }
156 156
  157 + let isp = email.split('@')[1];
157 const mapperEmailISP = { 158 const mapperEmailISP = {
158 'yoho.cn': 'http://smail.yoho.cn' 159 'yoho.cn': 'http://smail.yoho.cn'
159 }; 160 };
160 161
161 - let isp = email.split('@')[1];  
162 -  
163 req.body.emailUrl = mapperEmailISP[isp] || `http://mail.${isp}`; 162 req.body.emailUrl = mapperEmailISP[isp] || `http://mail.${isp}`;
164 next(); 163 next();
165 }; 164 };
@@ -169,13 +168,13 @@ const sendEmailPage = (req, res, next) => { @@ -169,13 +168,13 @@ const sendEmailPage = (req, res, next) => {
169 .then(result => { 168 .then(result => {
170 res.render('back/send-email', Object.assign({ 169 res.render('back/send-email', Object.assign({
171 module: 'passport', 170 module: 'passport',
172 - page : 'back-send-email-ok',  
173 - title : '邮件发送成功' 171 + page: 'back-send-email-ok',
  172 + title: '邮件发送成功'
174 }, { 173 }, {
175 sendEmail: { 174 sendEmail: {
176 coverHref: result.url, 175 coverHref: result.url,
177 - coverImg : result.img,  
178 - email : req.body.emailUrl 176 + coverImg: result.img,
  177 + email: req.body.emailUrl
179 } 178 }
180 })); 179 }));
181 }) 180 })
@@ -187,8 +186,7 @@ const validateCodeByEmailPage = (req, res, next) => { @@ -187,8 +186,7 @@ const validateCodeByEmailPage = (req, res, next) => {
187 let code = req.query.code || ''; 186 let code = req.query.code || '';
188 187
189 if (!_.isEmpty(req.mobileAuth)) { 188 if (!_.isEmpty(req.mobileAuth)) {
190 - next();  
191 - return; 189 + return next();
192 } 190 }
193 191
194 service.checkEmailCodeAsync(code) 192 service.checkEmailCodeAsync(code)
@@ -209,13 +207,13 @@ const resetPasswordPage = (req, res, next) => { @@ -209,13 +207,13 @@ const resetPasswordPage = (req, res, next) => {
209 .then(result => { 207 .then(result => {
210 res.render('back/reset-pwd', Object.assign({ 208 res.render('back/reset-pwd', Object.assign({
211 module: 'passport', 209 module: 'passport',
212 - page : 'back-reset-pwd',  
213 - title : '重置密码' 210 + page: 'back-reset-pwd',
  211 + title: '重置密码'
214 }, { 212 }, {
215 resetPwd: Object.assign({ 213 resetPwd: Object.assign({
216 coverHref: result.url, 214 coverHref: result.url,
217 - coverImg : result.img,  
218 - code : code 215 + coverImg: result.img,
  216 + code: code
219 }, req.mobileAuth) 217 }, req.mobileAuth)
220 })); 218 }));
221 }) 219 })
@@ -235,14 +233,14 @@ const verifyCodeByMobilePage = (req, res, next) => { @@ -235,14 +233,14 @@ const verifyCodeByMobilePage = (req, res, next) => {
235 .then(result => { 233 .then(result => {
236 res.render('back/verification', Object.assign({ 234 res.render('back/verification', Object.assign({
237 module: 'passport', 235 module: 'passport',
238 - page : 'back-verify-mobile-code',  
239 - title : '手机验证' 236 + page: 'back-verify-mobile-code',
  237 + title: '手机验证'
240 }, { 238 }, {
241 verification: { 239 verification: {
242 - coverHref : result.url,  
243 - coverImg : result.img,  
244 - mobile : req.body.mobile,  
245 - area : req.body.area, 240 + coverHref: result.url,
  241 + coverImg: result.img,
  242 + mobile: req.body.mobile,
  243 + area: req.body.area,
246 verifyCode: req.body.verifyCode 244 verifyCode: req.body.verifyCode
247 } 245 }
248 })); 246 }));
@@ -253,12 +251,12 @@ const verifyCodeByMobilePage = (req, res, next) => { @@ -253,12 +251,12 @@ const verifyCodeByMobilePage = (req, res, next) => {
253 const checkSuccessStatusPage = (req, res, next) => { 251 const checkSuccessStatusPage = (req, res, next) => {
254 let successType = req.session.successType || ''; 252 let successType = req.session.successType || '';
255 253
256 - if (successType) {  
257 - delete req.session.successType;  
258 - next();  
259 - } else {  
260 - res.redirect(helpers.urlFormat('/passport/back/index')); 254 + if (!successType) {
  255 + return res.redirect(helpers.urlFormat('/passport/back/index'));
261 } 256 }
  257 +
  258 + delete req.session.successType;
  259 + next();
262 }; 260 };
263 261
264 const resetPwdSuccessPage = (req, res, next) => { 262 const resetPwdSuccessPage = (req, res, next) => {
@@ -266,12 +264,12 @@ const resetPwdSuccessPage = (req, res, next) => { @@ -266,12 +264,12 @@ const resetPwdSuccessPage = (req, res, next) => {
266 .then(result => { 264 .then(result => {
267 res.render('back/reset-success', Object.assign({ 265 res.render('back/reset-success', Object.assign({
268 module: 'passport', 266 module: 'passport',
269 - page : 'back-index',  
270 - title : '重置密码成功' 267 + page: 'back-index',
  268 + title: '重置密码成功'
271 }, { 269 }, {
272 resetSuccess: { 270 resetSuccess: {
273 coverHref: result.url, 271 coverHref: result.url,
274 - coverImg : result.img 272 + coverImg: result.img
275 } 273 }
276 })); 274 }));
277 }) 275 })
@@ -282,12 +280,13 @@ const verifyCodeByMobileAPI = (req, res) => { @@ -282,12 +280,13 @@ const verifyCodeByMobileAPI = (req, res) => {
282 let mobile = req.param('mobile', ''); 280 let mobile = req.param('mobile', '');
283 let area = req.param('area', '86'); 281 let area = req.param('area', '86');
284 let mobileCode = req.param('code', ''); 282 let mobileCode = req.param('code', '');
285 - const session = req.session; 283 +
  284 + // const session = req.session;
286 285
287 const ERR = { 286 const ERR = {
288 - code : 400, 287 + code: 400,
289 message: '验证码错误!', 288 message: '验证码错误!',
290 - data : helpers.urlFormat('/passport/back/index') 289 + data: helpers.urlFormat('/passport/back/index')
291 }; 290 };
292 291
293 // if (!code || mobile !== session.mobile || area !== session.area) { 292 // if (!code || mobile !== session.mobile || area !== session.area) {
@@ -304,7 +303,7 @@ const verifyCodeByMobileAPI = (req, res) => { @@ -304,7 +303,7 @@ const verifyCodeByMobileAPI = (req, res) => {
304 }; 303 };
305 304
306 const validateExistCodePage = (req, res, next) => { 305 const validateExistCodePage = (req, res, next) => {
307 - let code = req.param('code', ''); 306 + let code = req.query.code || req.body.code;
308 307
309 if (!code) { 308 if (!code) {
310 return res.redirect(helpers.urlFormat('/passport/back/index')); 309 return res.redirect(helpers.urlFormat('/passport/back/index'));
@@ -314,24 +313,25 @@ const validateExistCodePage = (req, res, next) => { @@ -314,24 +313,25 @@ const validateExistCodePage = (req, res, next) => {
314 }; 313 };
315 314
316 const validateCodeByMobilePage = (req, res, next) => { 315 const validateCodeByMobilePage = (req, res, next) => {
317 - let code = req.param('code', '');  
318 - let mobile = req.param('mobile', ''); 316 + let code = req.query.code || req.body.code;
  317 + let mobile = req.query.mobile || req.body.mobile;
  318 + let area = req.query.area || req.body.area;
  319 + let token = req.query.token || req.body.token;
  320 + let createdAt = req.query.createdAt || req.body.createdAt;
319 321
320 if (!mobile) { 322 if (!mobile) {
321 req.mobileAuth = {}; 323 req.mobileAuth = {};
322 - next();  
323 - return; 324 + return next();
324 } 325 }
325 326
326 let data = { 327 let data = {
327 - mobile : mobile,  
328 - area : req.param('area', ''),  
329 - token : req.param('token', ''),  
330 - create_time: req.param('create_time', 0) 328 + mobile: mobile,
  329 + area: area,
  330 + token: token,
  331 + createdAt: createdAt
331 }; 332 };
332 333
333 code = new Buffer(code, 'base64').toString(); 334 code = new Buffer(code, 'base64').toString();
334 -  
335 req.mobileAuth = service.authRequest(data, code); 335 req.mobileAuth = service.authRequest(data, code);
336 336
337 next(); 337 next();
@@ -340,11 +340,11 @@ const validateCodeByMobilePage = (req, res, next) => { @@ -340,11 +340,11 @@ const validateCodeByMobilePage = (req, res, next) => {
340 const validatePwdPage = (req, res, next) => { 340 const validatePwdPage = (req, res, next) => {
341 let pwd = req.body.pwd || ''; 341 let pwd = req.body.pwd || '';
342 342
343 - if (helpers.isPassword(pwd)) {  
344 - next();  
345 - } else {  
346 - res.redirect(helpers.urlFormat('/passport/back/index')); 343 + if (!passportHelper.validator.isPassword(pwd)) {
  344 + return res.redirect(helpers.urlFormat('/passport/back/index'));
347 } 345 }
  346 +
  347 + next();
348 }; 348 };
349 349
350 const updatePwdAPI = (req, res, next) => { 350 const updatePwdAPI = (req, res, next) => {
@@ -365,20 +365,15 @@ const updatePwdAPI = (req, res, next) => { @@ -365,20 +365,15 @@ const updatePwdAPI = (req, res, next) => {
365 }; 365 };
366 366
367 const validateMobileInSession = (req, res, next) => { 367 const validateMobileInSession = (req, res, next) => {
368 -  
369 - console.log(req.session.mobile);  
370 - console.log(req.session.area);  
371 -  
372 -  
373 req.body.mobile = req.session.mobile || ''; 368 req.body.mobile = req.session.mobile || '';
374 req.body.verifyCode = req.session.verifyCode || ''; 369 req.body.verifyCode = req.session.verifyCode || '';
375 req.body.area = req.session.area || ''; 370 req.body.area = req.session.area || '';
376 371
377 - if (req.body.mobile && req.body.verifyCode) {  
378 - return next();  
379 - } else { 372 + if (!(req.body.mobile && req.body.verifyCode)) {
380 return res.redirect(helpers.urlFormat('/passport/back/index')); 373 return res.redirect(helpers.urlFormat('/passport/back/index'));
381 } 374 }
  375 +
  376 + next();
382 }; 377 };
383 378
384 module.exports = { 379 module.exports = {
@@ -29,7 +29,6 @@ const requiredPage = (req, res, next) => { @@ -29,7 +29,6 @@ const requiredPage = (req, res, next) => {
29 } 29 }
30 }; 30 };
31 31
32 -  
33 module.exports = { 32 module.exports = {
34 requiredAPI, 33 requiredAPI,
35 requiredPage 34 requiredPage
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
4 'use strict'; 4 'use strict';
5 const passportHelper = require('../models/passport-helper'); 5 const passportHelper = require('../models/passport-helper');
6 const regService = require('../models/reg-service'); 6 const regService = require('../models/reg-service');
  7 +const config = require('../../../config/common');
7 8
8 let helpers = global.yoho.helpers; 9 let helpers = global.yoho.helpers;
9 10
@@ -35,6 +36,25 @@ let index = (req, res, next) => { @@ -35,6 +36,25 @@ let index = (req, res, next) => {
35 }).catch(next); 36 }).catch(next);
36 }; 37 };
37 38
  39 +let success = (req, res, next) => {
  40 + let goUrl = req.query.next || config.siteUrl;
  41 +
  42 + // $goShoppingUrl = $this->get('goShoppingUrl',SITE_MAIN);
  43 + // $cover = PassportModel::getLeftBanner(PassportModel::REGISTER_LEFT_BANNER_CODE);
  44 + // $data = array(
  45 + // 'registerPage' => true,
  46 + // 'passport' => array(
  47 + // 'goUrl' => $goUrl,
  48 + // 'goShoppong' => $goShoppingUrl,
  49 + // 'coverHref' => $cover['url'],
  50 + // 'coverImg' => $cover['img'],
  51 + // ),
  52 + // 'uid' => $this->getUid(false),
  53 + // );
  54 + // $this->_view->display('success', $data);
  55 +};
  56 +
38 module.exports = { 57 module.exports = {
39 - index 58 + index,
  59 + success
40 }; 60 };
@@ -123,13 +123,11 @@ const verifyCodyByMobileAsync = (area, mobile, mobileCode) => { @@ -123,13 +123,11 @@ const verifyCodyByMobileAsync = (area, mobile, mobileCode) => {
123 mobile: mobile, 123 mobile: mobile,
124 area: area, 124 area: area,
125 token: result.data.token, 125 token: result.data.token,
126 - create_time: moment().unix() 126 + createdAt: moment().unix()
127 }; 127 };
128 128
129 data.code = new Buffer(backHelper.makeToken(data)).toString('base64'); 129 data.code = new Buffer(backHelper.makeToken(data)).toString('base64');
130 130
131 - console.log(data.code);  
132 -  
133 return { 131 return {
134 code: 200, 132 code: 200,
135 message: '验证成功', 133 message: '验证成功',
@@ -145,7 +143,7 @@ const authRequest = (data, token) => { @@ -145,7 +143,7 @@ const authRequest = (data, token) => {
145 } 143 }
146 144
147 let existTime = moment.duration(1, 'hours').seconds(); 145 let existTime = moment.duration(1, 'hours').seconds();
148 - let isExpired = (moment().unix() - data.create_time) > existTime; 146 + let isExpired = (moment().unix() - data.createdAt) > existTime;
149 147
150 if (isExpired) { 148 if (isExpired) {
151 return {}; 149 return {};
@@ -230,12 +230,23 @@ const makeAreaMobile = (area, mobile) => { @@ -230,12 +230,23 @@ const makeAreaMobile = (area, mobile) => {
230 return `${area}-${mobile}`; 230 return `${area}-${mobile}`;
231 }; 231 };
232 232
  233 +const isPassword = pwd => {
  234 + if (!pwd) {
  235 + return false;
  236 + }
  237 +
  238 + let pwdRegexp = /^([a-zA-Z0-9\-\+_!@\#$%\^&\*\(\)\:\;\.=\[\]\\\',\?]){6,20}$/;
  239 +
  240 + return pwdRegexp.test(_.trim(pwd));
  241 +};
  242 +
233 module.exports = { 243 module.exports = {
234 validator: { 244 validator: {
235 verifyPassword, 245 verifyPassword,
236 verifyMobile, 246 verifyMobile,
237 isAreaMobile, 247 isAreaMobile,
238 - verifyEmail 248 + verifyEmail,
  249 + isPassword
239 }, 250 },
240 makeAreaMobile, 251 makeAreaMobile,
241 getCountry, 252 getCountry,
@@ -10,8 +10,8 @@ const express = require('express'); @@ -10,8 +10,8 @@ const express = require('express');
10 const cRoot = './controllers'; 10 const cRoot = './controllers';
11 const login = require(cRoot + '/login'); 11 const login = require(cRoot + '/login');
12 12
13 -const Captcha = require(cRoot + '/captcha');  
14 -const Back = require(cRoot + '/back'); 13 +const captcha = require(cRoot + '/captcha');
  14 +const back = require(cRoot + '/back');
15 const reg = require(cRoot + '/reg'); 15 const reg = require(cRoot + '/reg');
16 16
17 const router = express.Router(); // eslint-disable-line 17 const router = express.Router(); // eslint-disable-line
@@ -28,37 +28,38 @@ router.get('/reg/index', reg.index); @@ -28,37 +28,38 @@ router.get('/reg/index', reg.index);
28 * 找回密码首页信息 28 * 找回密码首页信息
29 */ 29 */
30 // 找回密码首页 30 // 找回密码首页
31 -router.get('/back/index', Back.index); 31 +router.get('/back/index', back.index);
32 32
33 // 实时验证输入是否正确 33 // 实时验证输入是否正确
34 router.post('/back/authcode', 34 router.post('/back/authcode',
35 - Captcha.requiredAPI,  
36 - Back.validateInputAPI,  
37 - Back.getUserInfoAPI); 35 +
  36 + // captcha.requiredAPI,
  37 + back.validateInputAPI,
  38 + back.getUserInfoAPI);
38 39
39 // 提交按钮邮件API 40 // 提交按钮邮件API
40 router.post('/back/email', 41 router.post('/back/email',
41 42
42 // Captcha.requiredPage, 43 // Captcha.requiredPage,
43 - Back.validateUserPage,  
44 - Back.sendCodePage,  
45 - Back.saveInSession); 44 + back.validateUserPage,
  45 + back.sendCodePage,
  46 + back.saveInSession);
46 47
47 // 提交按钮手机API 48 // 提交按钮手机API
48 router.post('/back/mobile', 49 router.post('/back/mobile',
49 50
50 - Captcha.requiredPage,  
51 - Back.validateUserPage,  
52 - Back.sendCodePage,  
53 - Back.saveInSession); 51 + captcha.requiredPage,
  52 + back.validateUserPage,
  53 + back.sendCodePage,
  54 + back.saveInSession);
54 55
55 /** 56 /**
56 * 邮件找回密码 57 * 邮件找回密码
57 */ 58 */
58 // 发送邮件成功页面 59 // 发送邮件成功页面
59 router.get('/back/sendEmail', 60 router.get('/back/sendEmail',
60 - Back.validateEmailInSession,  
61 - Back.sendEmailPage); 61 + back.validateEmailInSession,
  62 + back.sendEmailPage);
62 63
63 /** 64 /**
64 * 短信找回密码 65 * 短信找回密码
@@ -68,42 +69,43 @@ router.get('/back/verification', @@ -68,42 +69,43 @@ router.get('/back/verification',
68 69
69 // Back.validateMobileInSession, 70 // Back.validateMobileInSession,
70 // Captcha.requiredPage, 71 // Captcha.requiredPage,
71 - Back.verifyCodeByMobilePage); 72 + back.verifyCodeByMobilePage);
72 73
73 // 重新发送短信接口 74 // 重新发送短信接口
74 router.post('/back/sendBackMobile', 75 router.post('/back/sendBackMobile',
75 76
76 // Captcha.requiredAPI, 77 // Captcha.requiredAPI,
77 - Back.validateMobileAPI,  
78 - Back.sendBackMobileAPI); 78 + back.validateMobileAPI,
  79 + back.sendBackMobileAPI);
79 80
80 // 验证手机验证码接口 81 // 验证手机验证码接口
81 router.post('/back/backMobile', 82 router.post('/back/backMobile',
82 83
83 // Captcha.requiredAPI, 84 // Captcha.requiredAPI,
84 - Back.verifyCodeByMobileAPI); 85 + back.verifyCodeByMobileAPI);
85 86
86 /** 87 /**
87 * 重置密码 88 * 重置密码
88 */ 89 */
89 // 重置密码页面 90 // 重置密码页面
90 router.get('/back/backcode', 91 router.get('/back/backcode',
91 - Back.validateExistCodePage,  
92 - Back.validateCodeByMobilePage,  
93 - Back.validateCodeByEmailPage,  
94 - Back.resetPasswordPage); 92 + back.validateExistCodePage,
  93 + back.validateCodeByMobilePage,
  94 + back.validateCodeByEmailPage,
  95 + back.resetPasswordPage);
95 96
96 // 重置密码接口 97 // 重置密码接口
97 router.post('/back/update', 98 router.post('/back/update',
98 - Back.validateExistCodePage,  
99 - Back.validateCodeByMobilePage,  
100 - Back.validatePwdPage,  
101 - Back.updatePwdAPI); 99 + back.validateExistCodePage,
  100 + back.validateCodeByMobilePage,
  101 +
  102 + // Back.validatePwdPage,
  103 + back.updatePwdAPI);
102 104
103 // 重置密码成功页面 105 // 重置密码成功页面
104 router.get('/back/resetSuccess', 106 router.get('/back/resetSuccess',
105 107
106 // Back.checkSuccessStatusPage, 108 // Back.checkSuccessStatusPage,
107 - Back.resetPwdSuccessPage); 109 + back.resetPwdSuccessPage);
108 110
109 module.exports = router; 111 module.exports = router;
@@ -14,7 +14,7 @@ module.exports = { @@ -14,7 +14,7 @@ module.exports = {
14 siteUrl: 'http://www.yohobuy.com', 14 siteUrl: 'http://www.yohobuy.com',
15 domains: { 15 domains: {
16 api: 'http://devapi.yoho.cn:58078/', // devapi.yoho.cn:58078 testapi.yoho.cn:28078 devapi.yoho.cn:58078 16 api: 'http://devapi.yoho.cn:58078/', // devapi.yoho.cn:58078 testapi.yoho.cn:28078 devapi.yoho.cn:58078
17 - service: 'http://devservice.yoho.cn:28077/', // testservice.yoho.cn:28077 devservice.yoho.cn:58077 17 + service: 'http://devservice.yoho.cn:58077/', // testservice.yoho.cn:28077 devservice.yoho.cn:58077
18 search: 'http://192.168.102.216:8080/yohosearch/' 18 search: 'http://192.168.102.216:8080/yohosearch/'
19 }, 19 },
20 useOneapm: false, 20 useOneapm: false,
@@ -76,12 +76,11 @@ if (isProduction) { @@ -76,12 +76,11 @@ if (isProduction) {
76 } else if (isTest) { 76 } else if (isTest) {
77 Object.assign(module.exports, { 77 Object.assign(module.exports, {
78 appName: 'www.yohobuy.com for test', 78 appName: 'www.yohobuy.com for test',
79 -  
80 - // domains: {  
81 - // api: 'http://testapi.yoho.cn:28078/',  
82 - // service: 'http://testservice.yoho.cn:28077/',  
83 - // search: 'http://192.168.102.216:8080/yohosearch/'  
84 - // }, 79 + domains: {
  80 + api: 'http://testapi.yoho.cn:28078/',
  81 + service: 'http://testservice.yoho.cn:28077/',
  82 + search: 'http://192.168.102.216:8080/yohosearch/'
  83 + },
85 useOneapm: true, 84 useOneapm: true,
86 useCache: true, 85 useCache: true,
87 memcache: { 86 memcache: {
@@ -325,7 +325,6 @@ exports.isPassword = (pwd) => { @@ -325,7 +325,6 @@ exports.isPassword = (pwd) => {
325 return false; 325 return false;
326 } 326 }
327 327
328 - // TODO  
329 let pwdRegexp = /^([a-zA-Z0-9\-\+_!@\#$%\^&\*\(\)\:\;\.=\[\]\\\',\?]){6,20}$/; 328 let pwdRegexp = /^([a-zA-Z0-9\-\+_!@\#$%\^&\*\(\)\:\;\.=\[\]\\\',\?]){6,20}$/;
330 329
331 return pwdRegexp.test(_.trim(pwd)); 330 return pwdRegexp.test(_.trim(pwd));
@@ -52,7 +52,7 @@ @@ -52,7 +52,7 @@
52 "uuid": "^2.0.2", 52 "uuid": "^2.0.2",
53 "winston": "^2.2.0", 53 "winston": "^2.2.0",
54 "winston-daily-rotate-file": "^1.1.4", 54 "winston-daily-rotate-file": "^1.1.4",
55 - "yoho-node-lib": "0.0.5" 55 + "yoho-node-lib": "0.0.7"
56 }, 56 },
57 "devDependencies": { 57 "devDependencies": {
58 "autoprefixer": "^6.3.6", 58 "autoprefixer": "^6.3.6",
@@ -41,6 +41,7 @@ $sc.click(function() { @@ -41,6 +41,7 @@ $sc.click(function() {
41 $sc.val(seconds-- + '秒后可重新操作'); 41 $sc.val(seconds-- + '秒后可重新操作');
42 } 42 }
43 }, 1000); 43 }, 1000);
  44 +
44 } else { 45 } else {
45 $(this).addClass('error'); 46 $(this).addClass('error');
46 $errTip.removeClass('hide').text('发送失败'); 47 $errTip.removeClass('hide').text('发送失败');