Showing
5 changed files
with
54 additions
and
21 deletions
@@ -37,8 +37,6 @@ passport.use(new LocalStrategy({ | @@ -37,8 +37,6 @@ passport.use(new LocalStrategy({ | ||
37 | let clientIp = req.yoho.clientIp || ''; | 37 | let clientIp = req.yoho.clientIp || ''; |
38 | let isSkip = req.body.isskip; | 38 | let isSkip = req.body.isskip; |
39 | 39 | ||
40 | - console.log('loginPost:', req.session.passwordWeakIgnore); | ||
41 | - | ||
42 | if (isNaN(parseInt(area, 0)) || _.isEmpty(username) || _.isEmpty(password)) { | 40 | if (isNaN(parseInt(area, 0)) || _.isEmpty(username) || _.isEmpty(password)) { |
43 | logger.info(`【Passport Login】bad params, area:${area} account:${username} password:${password}`); | 41 | logger.info(`【Passport Login】bad params, area:${area} account:${username} password:${password}`); |
44 | return done('登录参数错误', null); | 42 | return done('登录参数错误', null); |
@@ -74,7 +72,7 @@ passport.use(new LocalStrategy({ | @@ -74,7 +72,7 @@ passport.use(new LocalStrategy({ | ||
74 | } else if (result.code && result.code === 4189) { | 72 | } else if (result.code && result.code === 4189) { |
75 | done({code: 4189}, null); | 73 | done({code: 4189}, null); |
76 | } else if (result.code && result.code === 510) { | 74 | } else if (result.code && result.code === 510) { |
77 | - done({code: 510, data: result.data}, null); | 75 | + done(null, Object.assign(result.data, {weakPassword: true})); |
78 | } else { | 76 | } else { |
79 | done('账号或密码不正确', null); | 77 | done('账号或密码不正确', null); |
80 | } | 78 | } |
@@ -192,14 +192,6 @@ const local = { | @@ -192,14 +192,6 @@ const local = { | ||
192 | }; | 192 | }; |
193 | 193 | ||
194 | return res.json(obj); | 194 | return res.json(obj); |
195 | - } else if (err.code === 510) { | ||
196 | - req.session.passwordWeak = err.data; | ||
197 | - return res.json({ | ||
198 | - code: 510, | ||
199 | - url: '/passport/password/resetpage', | ||
200 | - pwdTip: _.get(err, 'data.pwdTip', '密码应为6-20位字母、数字的组合'), | ||
201 | - uid: _.get(err, 'data.uid', '') | ||
202 | - }); | ||
203 | } else { | 195 | } else { |
204 | let obj = { | 196 | let obj = { |
205 | code: 400, | 197 | code: 400, |
@@ -231,11 +223,35 @@ const local = { | @@ -231,11 +223,35 @@ const local = { | ||
231 | res.cookie('_LOGIN_TYPE', 0, { | 223 | res.cookie('_LOGIN_TYPE', 0, { |
232 | domain: 'm.yohobuy.com' | 224 | domain: 'm.yohobuy.com' |
233 | }); | 225 | }); |
226 | + | ||
227 | + | ||
228 | + // 弱密码返回数据 | ||
229 | + let passwordWeakReturn; | ||
230 | + | ||
231 | + if (user.weakPassword) { | ||
232 | + req.session.passwordWeak = user; | ||
233 | + passwordWeakReturn = { | ||
234 | + code: 510, | ||
235 | + url: '/passport/password/resetpage', | ||
236 | + pwdTip: _.get(user, 'pwdTip', '密码应为6-20位字母、数字的组合'), | ||
237 | + uid: _.get(user, 'uid', '') | ||
238 | + }; | ||
239 | + } | ||
240 | + | ||
241 | + // 不可以跳过,不登录用户 | ||
242 | + if (user.weakPassword && user.canSkip !== 'Y') { | ||
243 | + return res.json(passwordWeakReturn); | ||
244 | + } | ||
245 | + | ||
234 | AuthHelper.syncUserSession(user.uid, req, res, user.session_key).then(() => { | 246 | AuthHelper.syncUserSession(user.uid, req, res, user.session_key).then(() => { |
235 | - res.json({ | ||
236 | - code: 200, | ||
237 | - data: user | ||
238 | - }); | 247 | + if (user.weakPassword) { |
248 | + return res.json(passwordWeakReturn); | ||
249 | + } else { | ||
250 | + res.json({ | ||
251 | + code: 200, | ||
252 | + data: user | ||
253 | + }); | ||
254 | + } | ||
239 | }).catch(next); | 255 | }).catch(next); |
240 | } | 256 | } |
241 | })(req, res, next); | 257 | })(req, res, next); |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | * @Author: Targaryen | 2 | * @Author: Targaryen |
3 | * @Date: 2017-04-13 10:21:07 | 3 | * @Date: 2017-04-13 10:21:07 |
4 | * @Last Modified by: Targaryen | 4 | * @Last Modified by: Targaryen |
5 | - * @Last Modified time: 2017-04-14 17:51:10 | 5 | + * @Last Modified time: 2017-04-17 15:52:03 |
6 | */ | 6 | */ |
7 | 7 | ||
8 | /* ******************** | 8 | /* ******************** |
@@ -11,10 +11,25 @@ | @@ -11,10 +11,25 @@ | ||
11 | 11 | ||
12 | 'use strict'; | 12 | 'use strict'; |
13 | 13 | ||
14 | +const config = global.yoho.config; | ||
15 | +const utils = require(global.utils); | ||
14 | const reset = require('../models/reset'); | 16 | const reset = require('../models/reset'); |
15 | 17 | ||
16 | const passwordResetPage = (req, res) => { | 18 | const passwordResetPage = (req, res) => { |
17 | let passwordWeakObj = req.session.passwordWeak; | 19 | let passwordWeakObj = req.session.passwordWeak; |
20 | + let refer = req.cookies.refer; | ||
21 | + | ||
22 | + if (refer) { | ||
23 | + refer = decodeURI(req.cookies.refer); | ||
24 | + } else { | ||
25 | + refer = `${config.siteUrl}/home`; | ||
26 | + } | ||
27 | + | ||
28 | + if (/sign|login/.test(refer)) { | ||
29 | + refer = `${config.siteUrl}/home`; | ||
30 | + } | ||
31 | + | ||
32 | + refer = utils.refererLimit(refer); | ||
18 | 33 | ||
19 | res.render('reset/password', { | 34 | res.render('reset/password', { |
20 | width750: true, | 35 | width750: true, |
@@ -22,7 +37,7 @@ const passwordResetPage = (req, res) => { | @@ -22,7 +37,7 @@ const passwordResetPage = (req, res) => { | ||
22 | page: 'reset', | 37 | page: 'reset', |
23 | pageStyle: 'passport-body', | 38 | pageStyle: 'passport-body', |
24 | title: '重置密码', | 39 | title: '重置密码', |
25 | - canSkip: passwordWeakObj.canSkip === 'Y' | 40 | + canSkip: passwordWeakObj.canSkip === 'Y' ? refer : false |
26 | }); | 41 | }); |
27 | }; | 42 | }; |
28 | 43 | ||
@@ -34,8 +49,9 @@ const passwordResetPage = (req, res) => { | @@ -34,8 +49,9 @@ const passwordResetPage = (req, res) => { | ||
34 | */ | 49 | */ |
35 | const passwordReset = (req, res, next) => { | 50 | const passwordReset = (req, res, next) => { |
36 | let passwordWeakObj = req.session.passwordWeak; | 51 | let passwordWeakObj = req.session.passwordWeak; |
52 | + let uid = req.user.uid; | ||
37 | 53 | ||
38 | - if (!passwordWeakObj.uid || !passwordWeakObj.token) { | 54 | + if (!uid || !passwordWeakObj.token) { |
39 | return res.json({ | 55 | return res.json({ |
40 | code: 400, | 56 | code: 400, |
41 | massage: '非法请求' | 57 | massage: '非法请求' |
@@ -45,7 +61,7 @@ const passwordReset = (req, res, next) => { | @@ -45,7 +61,7 @@ const passwordReset = (req, res, next) => { | ||
45 | req.session.passwordWeak = null; | 61 | req.session.passwordWeak = null; |
46 | 62 | ||
47 | reset.resetPassword({ | 63 | reset.resetPassword({ |
48 | - uid: passwordWeakObj.uid, | 64 | + uid: uid, |
49 | oldPwd: req.body.oldPwd, | 65 | oldPwd: req.body.oldPwd, |
50 | newPwd: req.body.newPwd, | 66 | newPwd: req.body.newPwd, |
51 | token: passwordWeakObj.token | 67 | token: passwordWeakObj.token |
@@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
4 | </div> | 4 | </div> |
5 | {{#if canSkip}} | 5 | {{#if canSkip}} |
6 | <div class="ignore" id="ignoreBtn"> | 6 | <div class="ignore" id="ignoreBtn"> |
7 | - <span>跳过</span> | 7 | + <a href="{{canSkip}}"><span>跳过</span></a> |
8 | </div> | 8 | </div> |
9 | {{/if}} | 9 | {{/if}} |
10 | <div class="tip"> | 10 | <div class="tip"> |
@@ -15,10 +15,13 @@ | @@ -15,10 +15,13 @@ | ||
15 | margin-right: 60px; | 15 | margin-right: 60px; |
16 | padding: 12px 32px; | 16 | padding: 12px 32px; |
17 | border-radius: 32px; | 17 | border-radius: 32px; |
18 | - color: #fff; | ||
19 | border: 1px solid #fff; | 18 | border: 1px solid #fff; |
20 | } | 19 | } |
21 | 20 | ||
21 | + .ignore a { | ||
22 | + color: #fff; | ||
23 | + } | ||
24 | + | ||
22 | .tip { | 25 | .tip { |
23 | text-align: center; | 26 | text-align: center; |
24 | font-size: 16px; | 27 | font-size: 16px; |
-
Please register or login to post a comment