Showing
1 changed file
with
205 additions
and
199 deletions
@@ -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 | +}; |
-
Please register or login to post a comment