Authored by ccbikai

注册修改

@@ -14,261 +14,267 @@ const cookie = require(global.library + '/cookie'); @@ -14,261 +14,267 @@ const cookie = require(global.library + '/cookie');
14 const RegService = require('../models/reg-service'); 14 const RegService = require('../models/reg-service');
15 const AuthHelper = require('../models/auth-helper'); 15 const AuthHelper = require('../models/auth-helper');
16 16
17 -const reg = {  
18 - index: (req, res) => { 17 +let index = (req, res) => {
19 // 设置注册有效时间30分钟, 防机器刷 18 // 设置注册有效时间30分钟, 防机器刷
20 - req.session._REG_EXPIRE = Date.now() + 1800000; 19 + req.session._REG_EXPIRE = Date.now() + 1800000;
21 20
22 - let refer = req.query.refer; 21 + let refer = req.query.refer;
23 22
24 - refer && res.cookie('refer', encodeURI(refer), {  
25 - domain: 'yohobuy.com'  
26 - }); 23 + refer && res.cookie('refer', encodeURI(refer), {
  24 + domain: 'yohobuy.com'
  25 + });
27 26
28 - res.render('reg/index', {  
29 - title: '注册', 27 + res.render('reg/index', {
  28 + title: '注册',
30 backUrl: 'javascript:history.go(-1)', // eslint-disable-line 29 backUrl: 'javascript:history.go(-1)', // eslint-disable-line
31 - headerText: '注册', // 头部信息  
32 - isPassportPage: true, // 模板中模块标识  
33 - areaCode: '+86', // 默认的区号  
34 - countrys: RegService.getAreaData() // 地区信息列表  
35 - });  
36 - },  
37 - verifyMobile: (req, res, next) => {  
38 - let data = {  
39 - code: 400,  
40 - message: '手机号已存在',  
41 - data: ''  
42 - }; 30 + headerText: '注册', // 头部信息
  31 + isPassportPage: true, // 模板中模块标识
  32 + areaCode: '+86', // 默认的区号
  33 + countrys: RegService.getAreaData() // 地区信息列表
  34 + });
  35 +};
  36 +let verifyMobile = (req, res, next) => {
  37 + let data = {
  38 + code: 400,
  39 + message: '手机号已存在',
  40 + data: ''
  41 + };
43 42
44 - let mobile = +req.body.phoneNum;  
45 - let area = +(req.body.areaCode || 86); 43 + let mobile = +req.body.phoneNum;
  44 + let area = +(req.body.areaCode || 86);
46 45
47 /* 判断参数是否合法 */ 46 /* 判断参数是否合法 */
48 - if (!_.isNumber(mobile) || !_.isNumber(area)) {  
49 - data.message = '手机号错误';  
50 - return res.json(data);  
51 - } 47 + if (!_.isNumber(mobile) || !_.isNumber(area)) {
  48 + data.message = '手机号错误';
  49 + return res.json(data);
  50 + }
52 51
53 /* 设置注册有效时间30分钟, 防机器刷 */ 52 /* 设置注册有效时间30分钟, 防机器刷 */
54 - let expire = req.session._REG_EXPIRE; 53 + let expire = req.session._REG_EXPIRE;
55 54
56 - if (!expire || expire < Date.now()) {  
57 - data.message = '非法请求';  
58 - return res.json(data);  
59 - } 55 + if (!expire || expire < Date.now()) {
  56 + data.message = '非法请求';
  57 + return res.json(data);
  58 + }
60 59
61 /* 向手机发送注册验证码 */ 60 /* 向手机发送注册验证码 */
62 - RegService.sendCodeToMobile(area, mobile).then((result) => {  
63 - if (!result.code) {  
64 - return res.json(data);  
65 - } 61 + RegService.sendCodeToMobile(area, mobile).then((result) => {
  62 + if (!result.code) {
  63 + return res.json(data);
  64 + }
66 65
67 /* 返回跳转到验证页面的链接 */ 66 /* 返回跳转到验证页面的链接 */
68 - if (result.code === 200) {  
69 - let token = sign.makeToken(mobile);  
70 -  
71 - result.data = helpers.urlFormat('/passport/reg/code', {  
72 - token: token,  
73 - phoneNum: mobile,  
74 - areaCode: area  
75 - });  
76 - } 67 + if (result.code === 200) {
  68 + let token = sign.makeToken(mobile);
77 69
78 - return res.json(result);  
79 - }).catch(next);  
80 - },  
81 - code: (req, res, next) => {  
82 - let token = req.query.token;  
83 - let mobile = +req.query.phoneNum;  
84 - let area = +(req.query.areaCode || 86);  
85 -  
86 - // 判断是否允许访问, 不允许则跳转到错误页面  
87 - if (!_.isString(token) || !_.isNumber(mobile) || !sign.verifyToken(mobile, token)) {  
88 - return next({  
89 - code: 403,  
90 - message: 'error token or mobile' 70 + result.data = helpers.urlFormat('/passport/reg/code', {
  71 + token: token,
  72 + phoneNum: mobile,
  73 + areaCode: area
91 }); 74 });
92 } 75 }
93 76
94 - res.render('reg/code', {  
95 - page: 'code',  
96 - title: '注册-验证码',  
97 - backUrl: '/?go=1', // eslint-disable-line  
98 - headerText: '注册', // 头部信息  
99 - isPassportPage: true, // 模板中模块标识  
100 - areaCode: area, // 默认的区号  
101 - phoneNum: mobile, // 手机号  
102 - token: token, // 访问令牌  
103 - serviceUrl: 'http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=620092&configID=149091&jid=8732423409&info=' // 在线客服 77 + return res.json(result);
  78 + }).catch(next);
  79 +};
  80 +let codeAction = (req, res, next) => {
  81 + let token = req.query.token;
  82 + let mobile = +req.query.phoneNum;
  83 + let area = +(req.query.areaCode || 86);
  84 +
  85 + // 判断是否允许访问, 不允许则跳转到错误页面
  86 + if (!_.isString(token) || !_.isNumber(mobile) || !sign.verifyToken(mobile, token)) {
  87 + return next({
  88 + code: 403,
  89 + message: 'error token or mobile'
104 }); 90 });
105 - },  
106 - sendCode: (req, res, next) => {  
107 - let data = {  
108 - code: 400,  
109 - message: '发送验证码失败',  
110 - data: ''  
111 - }; 91 + }
112 92
113 - let mobile = +req.body.phoneNum;  
114 - let area = +(req.body.areaCode || 86); 93 + res.render('reg/code', {
  94 + page: 'code',
  95 + title: '注册-验证码',
  96 + backUrl: '/?go=1', // eslint-disable-line
  97 + headerText: '注册', // 头部信息
  98 + isPassportPage: true, // 模板中模块标识
  99 + areaCode: area, // 默认的区号
  100 + phoneNum: mobile, // 手机号
  101 + token: token, // 访问令牌
  102 + serviceUrl: 'http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=620092&configID=149091&jid=8732423409&info=' // 在线客服
  103 + });
  104 +};
  105 +let sendCode = (req, res, next) => {
  106 + let data = {
  107 + code: 400,
  108 + message: '发送验证码失败',
  109 + data: ''
  110 + };
  111 +
  112 + let mobile = +req.body.phoneNum;
  113 + let area = +(req.body.areaCode || 86);
115 114
116 /* 判断参数是否合法 */ 115 /* 判断参数是否合法 */
117 - if (!_.isNumber(mobile) || !_.isNumber(area)) {  
118 - data.message = '手机号错误';  
119 - return res.json(data);  
120 - } 116 + if (!_.isNumber(mobile) || !_.isNumber(area)) {
  117 + data.message = '手机号错误';
  118 + return res.json(data);
  119 + }
121 120
122 /* 设置注册有效时间30分钟, 防机器刷 */ 121 /* 设置注册有效时间30分钟, 防机器刷 */
123 - let expire = req.session._REG_EXPIRE; 122 + let expire = req.session._REG_EXPIRE;
124 123
125 - if (!expire || expire < Date.now()) {  
126 - data.message = '非法请求';  
127 - return res.json(data);  
128 - } 124 + if (!expire || expire < Date.now()) {
  125 + data.message = '非法请求';
  126 + return res.json(data);
  127 + }
129 128
130 /* 向手机发送注册验证码 */ 129 /* 向手机发送注册验证码 */
131 - RegService.sendCodeToMobile(area, mobile).then((result) => {  
132 - return result.code ? res.json(result) : res.json(data);  
133 - }).catch(next);  
134 - },  
135 - verifyCode: (req, res, next) => {  
136 - let data = {  
137 - code: 400,  
138 - message: '验证码错误',  
139 - data: ''  
140 - };  
141 -  
142 - let mobile = +req.body.phoneNum;  
143 - let area = +(req.body.areaCode || 86);  
144 - let code = +req.body.code; 130 + RegService.sendCodeToMobile(area, mobile).then((result) => {
  131 + return result.code ? res.json(result) : res.json(data);
  132 + }).catch(next);
  133 +};
  134 +let verifyCode = (req, res, next) => {
  135 + let data = {
  136 + code: 400,
  137 + message: '验证码错误',
  138 + data: ''
  139 + };
  140 +
  141 + let mobile = +req.body.phoneNum;
  142 + let area = +(req.body.areaCode || 86);
  143 + let code = +req.body.code;
145 144
146 /* 判断参数是否合法 */ 145 /* 判断参数是否合法 */
147 - if (!_.isNumber(mobile) || !_.isNumber(area) || !_.isNumber(code)) {  
148 - data.message = '手机号错误';  
149 - return res.json(data);  
150 - } 146 + if (!_.isNumber(mobile) || !_.isNumber(area) || !_.isNumber(code)) {
  147 + data.message = '手机号错误';
  148 + return res.json(data);
  149 + }
151 150
152 /* 设置注册有效时间30分钟, 防机器刷 */ 151 /* 设置注册有效时间30分钟, 防机器刷 */
153 - let expire = req.session._REG_EXPIRE; 152 + let expire = req.session._REG_EXPIRE;
154 153
155 - if (!expire || expire < Date.now()) {  
156 - data.message = '非法请求';  
157 - return res.json(data);  
158 - } 154 + if (!expire || expire < Date.now()) {
  155 + data.message = '非法请求';
  156 + return res.json(data);
  157 + }
159 158
160 /* 验证注册的标识码是否有效 */ 159 /* 验证注册的标识码是否有效 */
161 - RegService.validMobileCode(area, mobile, code).then((result) => {  
162 - if (!result.code) {  
163 - return res.json(data);  
164 - } 160 + RegService.validMobileCode(area, mobile, code).then((result) => {
  161 + if (!result.code) {
  162 + return res.json(data);
  163 + }
165 164
166 /* 返回跳转到设置密码的链接 */ 165 /* 返回跳转到设置密码的链接 */
167 - if (result.code === 200) {  
168 - let token = sign.makeToken(mobile);  
169 -  
170 - result.data = helpers.urlFormat('/passport/reg/password', {  
171 - token: token,  
172 - phoneNum: mobile,  
173 - areaCode: area  
174 - });  
175 - } else if (result.code === 404) {  
176 - result.message = '验证码错误'; // 统一验证提示  
177 - }  
178 -  
179 - return res.json(result);  
180 - }).catch(next);  
181 - },  
182 - password: (req, res, next) => {  
183 - let token = req.query.token;  
184 - let mobile = +req.query.phoneNum;  
185 - let area = +(req.query.areaCode || 86); 166 + if (result.code === 200) {
  167 + let token = sign.makeToken(mobile);
186 168
187 - // 判断是否允许访问, 不允许则跳转到错误页面  
188 - if (!_.isString(token) || !_.isNumber(mobile) || !_.isNumber(area) || !sign.verifyToken(mobile, token)) {  
189 - return next({  
190 - code: 403,  
191 - message: 'error token or mobile' 169 + result.data = helpers.urlFormat('/passport/reg/password', {
  170 + token: token,
  171 + phoneNum: mobile,
  172 + areaCode: area
192 }); 173 });
  174 + } else if (result.code === 404) {
  175 + result.message = '验证码错误'; // 统一验证提示
193 } 176 }
194 177
195 - res.render('reg/password', {  
196 - page: 'password',  
197 - title: '注册-设置密码',  
198 - backUrl: '/?go=1', // eslint-disable-line  
199 - headerText: '注册', // 头部信息  
200 - isPassportPage: true, // 模板中模块标识  
201 - areaCode: area, // 默认的区号  
202 - phoneNum: mobile, // 手机号  
203 - token: token // 访问令牌 178 + return res.json(result);
  179 + }).catch(next);
  180 +};
  181 +let passwordAction = (req, res, next) => {
  182 + let token = req.query.token;
  183 + let mobile = +req.query.phoneNum;
  184 + let area = +(req.query.areaCode || 86);
  185 +
  186 + // 判断是否允许访问, 不允许则跳转到错误页面
  187 + if (!_.isString(token) || !_.isNumber(mobile) || !_.isNumber(area) || !sign.verifyToken(mobile, token)) {
  188 + return next({
  189 + code: 403,
  190 + message: 'error token or mobile'
204 }); 191 });
205 - },  
206 - setPassword: (req, res, next) => {  
207 - let data = {  
208 - code: 400,  
209 - message: '密码格式不正确',  
210 - data: ''  
211 - };  
212 -  
213 - let mobile = +req.body.phoneNum;  
214 - let area = +(req.body.areaCode || 86);  
215 - let password = req.body.password;  
216 - let token = req.body.token; 192 + }
  193 +
  194 + res.render('reg/password', {
  195 + page: 'password',
  196 + title: '注册-设置密码',
  197 + backUrl: '/?go=1', // eslint-disable-line
  198 + headerText: '注册', // 头部信息
  199 + isPassportPage: true, // 模板中模块标识
  200 + areaCode: area, // 默认的区号
  201 + phoneNum: mobile, // 手机号
  202 + token: token // 访问令牌
  203 + });
  204 +};
  205 +let setPassword = (req, res, next) => {
  206 + let data = {
  207 + code: 400,
  208 + message: '密码格式不正确',
  209 + data: ''
  210 + };
  211 +
  212 + let mobile = +req.body.phoneNum;
  213 + let area = +(req.body.areaCode || 86);
  214 + let password = req.body.password;
  215 + let token = req.body.token;
217 216
218 /* 判断参数是否合法 */ 217 /* 判断参数是否合法 */
219 - if (!_.isString(token) || !_.isNumber(mobile) || !_.isNumber(area) || !password) {  
220 - data.message = '请求参数不合法';  
221 - return res.json(data);  
222 - } 218 + if (!_.isString(token) || !_.isNumber(mobile) || !_.isNumber(area) || !password) {
  219 + data.message = '请求参数不合法';
  220 + return res.json(data);
  221 + }
223 222
224 /* 判断是否允许访问 */ 223 /* 判断是否允许访问 */
225 - if (!sign.verifyToken(mobile, token)) {  
226 - data.message = '非法 token';  
227 - return res.json(data);  
228 - } 224 + if (!sign.verifyToken(mobile, token)) {
  225 + data.message = '非法 token';
  226 + return res.json(data);
  227 + }
229 228
230 /* 判断密码是否符合规则 */ 229 /* 判断密码是否符合规则 */
231 - if (!helpers.verifyPassword(password)) {  
232 - return res.json(data);  
233 - } 230 + if (!helpers.verifyPassword(password)) {
  231 + return res.json(data);
  232 + }
234 233
235 // 购物车key 234 // 购物车key
236 - let shoppingKey = cookie.getShoppingKey(req); 235 + let shoppingKey = cookie.getShoppingKey(req);
237 236
238 // 验证注册的标识码是否有效 237 // 验证注册的标识码是否有效
239 - RegService.regMobile(area, mobile, password, shoppingKey).then((result) => {  
240 - if (!result.code || result.code !== 200) {  
241 - return Promise.reject(result);  
242 - }  
243 - if (!result.data || !result.data.uid) {  
244 - return Promise.reject(result);  
245 - } 238 + RegService.regMobile(area, mobile, password, shoppingKey).then((result) => {
  239 + if (!result.code || result.code !== 200) {
  240 + return Promise.reject(result);
  241 + }
  242 + if (!result.data || !result.data.uid) {
  243 + return Promise.reject(result);
  244 + }
246 245
247 - return AuthHelper.syncUserSession(result.data.uid, req, res);  
248 - }).then(() => { 246 + return AuthHelper.syncUserSession(result.data.uid, req, res);
  247 + }).then(() => {
249 // 返回跳转到来源页面 248 // 返回跳转到来源页面
250 - let refer = req.cookies.refer; 249 + let refer = req.cookies.refer;
251 250
252 - if (refer) {  
253 - refer = decodeURI(req.cookies.refer);  
254 - } else {  
255 - refer = '/home';  
256 - } 251 + if (refer) {
  252 + refer = decodeURI(req.cookies.refer);
  253 + } else {
  254 + refer = '/home';
  255 + }
257 256
258 - if (/sign|login/.test(refer)) {  
259 - refer = '/home';  
260 - } 257 + if (/sign|login/.test(refer)) {
  258 + refer = '/home';
  259 + }
261 260
262 - return res.json({  
263 - code: 200,  
264 - message: '注册成功',  
265 - data: {  
266 - session: refer,  
267 - href: refer  
268 - }  
269 - });  
270 - }).catch(next);  
271 - } 261 + return res.json({
  262 + code: 200,
  263 + message: '注册成功',
  264 + data: {
  265 + session: refer,
  266 + href: refer
  267 + }
  268 + });
  269 + }).catch(next);
272 }; 270 };
273 271
274 -module.exports = reg; 272 +module.exports = {
  273 + index,
  274 + verifyMobile,
  275 + code: codeAction,
  276 + sendCode,
  277 + verifyCode,
  278 + password: passwordAction,
  279 + setPassword
  280 +};