Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
yohobuy-node
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
1
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
htoooth
9 years ago
Commit
9282a3b851c986af85b453bd660de98720bbb6b8
1 parent
e9282b11
add verify
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
97 additions
and
89 deletions
apps/passport/controllers/back.js
apps/passport/controllers/captcha.js
apps/passport/models/back-service.js
apps/passport/models/passport-helper.js
apps/passport/router.js
library/helpers.js
public/js/passport/back/verification.js
apps/passport/controllers/back.js
View file @
9282a3b
...
...
@@ -10,20 +10,20 @@ const service = require('../models/back-service');
const
passportHelper
=
require
(
'../models/passport-helper'
);
const
_
=
require
(
'lodash'
);
//helpers.urlFormat = (url, qs) => {
// let localhost = 'http://localhost:6002';
//
// if (_.isEmpty(qs)) {
// return localhost + url;
// }
//
// const queryString = require('queryString');
//
// let str = queryString.stringify(qs);
//
// return localhost + url + '?' + str;
//
//};
helpers
.
urlFormat
=
(
url
,
qs
)
=>
{
let
localhost
=
'http://localhost:6002'
;
if
(
_
.
isEmpty
(
qs
))
{
return
localhost
+
url
;
}
const
queryString
=
require
(
'queryString'
);
let
str
=
queryString
.
stringify
(
qs
);
return
localhost
+
url
+
'?'
+
str
;
};
/**
* 找回密码主页面
...
...
@@ -93,11 +93,11 @@ const sendCodePage = (req, res, next) => {
service
.
sendCodeToUserAsync
(
inputInfo
.
type
,
inputInfo
.
phone
,
inputInfo
.
area
)
.
then
(
result
=>
{
if
(
result
.
code
&&
result
.
code
===
200
)
{
return
next
();
}
else
{
if
(
!
(
result
.
code
&&
result
.
code
===
200
))
{
return
res
.
redirect
(
helpers
.
urlFormat
(
'/passport/back/index'
));
}
return
next
();
})
.
catch
(
next
);
};
...
...
@@ -142,24 +142,23 @@ const validateMobileAPI = (req, res, next) => {
if
(
!
passportHelper
.
validator
.
isAreaMobile
(
passportHelper
.
makeAreaMobile
(
area
,
mobile
)))
{
return
res
.
json
(
ERR
);
}
else
{
return
next
();
}
next
();
};
const
validateEmailInSession
=
(
req
,
res
,
next
)
=>
{
let
email
=
req
.
session
.
email
||
''
;
if
(
!
email
)
{
res
.
redirect
(
helpers
.
urlFormat
(
'/passport/back/index'
));
re
turn
re
s
.
redirect
(
helpers
.
urlFormat
(
'/passport/back/index'
));
}
let
isp
=
email
.
split
(
'@'
)[
1
];
const
mapperEmailISP
=
{
'yoho.cn'
:
'http://smail.yoho.cn'
};
let
isp
=
email
.
split
(
'@'
)[
1
];
req
.
body
.
emailUrl
=
mapperEmailISP
[
isp
]
||
`
http
:
//mail.${isp}`;
next
();
};
...
...
@@ -187,8 +186,7 @@ const validateCodeByEmailPage = (req, res, next) => {
let
code
=
req
.
query
.
code
||
''
;
if
(
!
_
.
isEmpty
(
req
.
mobileAuth
))
{
next
();
return
;
return
next
();
}
service
.
checkEmailCodeAsync
(
code
)
...
...
@@ -253,12 +251,12 @@ const verifyCodeByMobilePage = (req, res, next) => {
const
checkSuccessStatusPage
=
(
req
,
res
,
next
)
=>
{
let
successType
=
req
.
session
.
successType
||
''
;
if
(
successType
)
{
delete
req
.
session
.
successType
;
next
();
}
else
{
res
.
redirect
(
helpers
.
urlFormat
(
'/passport/back/index'
));
if
(
!
successType
)
{
return
res
.
redirect
(
helpers
.
urlFormat
(
'/passport/back/index'
));
}
delete
req
.
session
.
successType
;
next
();
};
const
resetPwdSuccessPage
=
(
req
,
res
,
next
)
=>
{
...
...
@@ -282,7 +280,7 @@ const verifyCodeByMobileAPI = (req, res) => {
let
mobile
=
req
.
param
(
'mobile'
,
''
);
let
area
=
req
.
param
(
'area'
,
'86'
);
let
mobileCode
=
req
.
param
(
'code'
,
''
);
const
session
=
req
.
session
;
//
const session = req.session;
const
ERR
=
{
code
:
400
,
...
...
@@ -304,7 +302,7 @@ const verifyCodeByMobileAPI = (req, res) => {
};
const
validateExistCodePage
=
(
req
,
res
,
next
)
=>
{
let
code
=
req
.
param
(
'code'
,
''
)
;
let
code
=
req
.
query
.
code
||
req
.
body
.
code
;
if
(
!
code
)
{
return
res
.
redirect
(
helpers
.
urlFormat
(
'/passport/back/index'
));
...
...
@@ -314,24 +312,25 @@ const validateExistCodePage = (req, res, next) => {
};
const
validateCodeByMobilePage
=
(
req
,
res
,
next
)
=>
{
let
code
=
req
.
param
(
'code'
,
''
);
let
mobile
=
req
.
param
(
'mobile'
,
''
);
let
code
=
req
.
query
.
code
||
req
.
body
.
code
;
let
mobile
=
req
.
query
.
mobile
||
req
.
body
.
mobile
;
let
area
=
req
.
query
.
area
||
req
.
body
.
area
;
let
token
=
req
.
query
.
token
||
req
.
body
.
token
;
let
createdAt
=
req
.
query
.
createdAt
||
req
.
body
.
createdAt
;
if
(
!
mobile
)
{
req
.
mobileAuth
=
{};
next
();
return
;
return
next
();
}
let
data
=
{
mobile
:
mobile
,
area
:
req
.
param
(
'area'
,
''
),
token
:
req
.
param
(
'token'
,
''
),
create_time
:
req
.
param
(
'create_time'
,
0
)
mobile
:
mobile
,
area
:
area
,
token
:
token
,
createdAt
:
createdAt
};
code
=
new
Buffer
(
code
,
'base64'
).
toString
();
req
.
mobileAuth
=
service
.
authRequest
(
data
,
code
);
next
();
...
...
@@ -340,11 +339,11 @@ const validateCodeByMobilePage = (req, res, next) => {
const
validatePwdPage
=
(
req
,
res
,
next
)
=>
{
let
pwd
=
req
.
body
.
pwd
||
''
;
if
(
helpers
.
isPassword
(
pwd
))
{
next
();
}
else
{
res
.
redirect
(
helpers
.
urlFormat
(
'/passport/back/index'
));
if
(
!
passportHelper
.
validator
.
isPassword
(
pwd
))
{
return
res
.
redirect
(
helpers
.
urlFormat
(
'/passport/back/index'
));
}
next
();
};
const
updatePwdAPI
=
(
req
,
res
,
next
)
=>
{
...
...
@@ -365,20 +364,15 @@ const updatePwdAPI = (req, res, next) => {
};
const
validateMobileInSession
=
(
req
,
res
,
next
)
=>
{
console
.
log
(
req
.
session
.
mobile
);
console
.
log
(
req
.
session
.
area
);
req
.
body
.
mobile
=
req
.
session
.
mobile
||
''
;
req
.
body
.
verifyCode
=
req
.
session
.
verifyCode
||
''
;
req
.
body
.
area
=
req
.
session
.
area
||
''
;
if
(
req
.
body
.
mobile
&&
req
.
body
.
verifyCode
)
{
return
next
();
}
else
{
if
(
!
(
req
.
body
.
mobile
&&
req
.
body
.
verifyCode
))
{
return
res
.
redirect
(
helpers
.
urlFormat
(
'/passport/back/index'
));
}
next
();
};
module
.
exports
=
{
...
...
apps/passport/controllers/captcha.js
View file @
9282a3b
...
...
@@ -29,7 +29,6 @@ const requiredPage = (req, res, next) => {
}
};
module
.
exports
=
{
requiredAPI
,
requiredPage
...
...
apps/passport/models/back-service.js
View file @
9282a3b
...
...
@@ -120,15 +120,15 @@ const verifyCodyByMobileAsync = (area, mobile, mobileCode) => {
}
let
data
=
{
mobile
:
mobile
,
area
:
area
,
token
:
result
.
data
.
token
,
create_time
:
moment
().
unix
()
mobile
:
mobile
,
area
:
area
,
token
:
result
.
data
.
token
,
createdAt
:
moment
().
unix
()
};
data
.
code
=
new
Buffer
(
backHelper
.
makeToken
(
data
)).
toString
(
'base64'
);
console
.
log
(
data
.
code
);
console
.
log
(
'encode'
,
data
.
code
);
return
{
code
:
200
,
...
...
@@ -145,7 +145,7 @@ const authRequest = (data, token) => {
}
let
existTime
=
moment
.
duration
(
1
,
'hours'
).
seconds
();
let
isExpired
=
(
moment
().
unix
()
-
data
.
create
_time
)
>
existTime
;
let
isExpired
=
(
moment
().
unix
()
-
data
.
create
dAt
)
>
existTime
;
if
(
isExpired
)
{
return
{};
...
...
@@ -164,6 +164,8 @@ const updatePwdAsync = (emailToken, mobileToken, newPassword) => {
return
ERR
;
}
console
.
log
(
mobileToken
);
let
mobile
=
mobileToken
.
mobile
;
let
area
=
mobileToken
.
area
;
let
token
=
mobileToken
.
token
;
...
...
apps/passport/models/passport-helper.js
View file @
9282a3b
...
...
@@ -230,12 +230,23 @@ const makeAreaMobile = (area, mobile) => {
return
`
$
{
area
}
-
$
{
mobile
}
`
;
};
const
isPassword
=
pwd
=>
{
if
(
!
pwd
)
{
return
false
;
}
let
pwdRegexp
=
/^
([
a-zA-Z0-9
\-\+
_!@
\#
$%
\^
&
\*\(\)\:\;\.
=
\[\]\\\'
,
\?]){6,20}
$/
;
return
pwdRegexp
.
test
(
_
.
trim
(
pwd
));
};
module
.
exports
=
{
validator
:
{
verifyPassword
,
verifyMobile
,
isAreaMobile
,
verifyEmail
verifyEmail
,
isPassword
},
makeAreaMobile
,
getCountry
,
...
...
apps/passport/router.js
View file @
9282a3b
...
...
@@ -10,8 +10,8 @@ const express = require('express');
const
cRoot
=
'./controllers'
;
const
login
=
require
(
cRoot
+
'/login'
);
const
Captcha
=
require
(
cRoot
+
'/captcha'
);
const
Back
=
require
(
cRoot
+
'/back'
);
const
captcha
=
require
(
cRoot
+
'/captcha'
);
const
back
=
require
(
cRoot
+
'/back'
);
const
router
=
express
.
Router
();
// eslint-disable-line
...
...
@@ -22,37 +22,38 @@ router.get('/login/wechat/callback', login.wechat.callback);
* 找回密码首页信息
*/
// 找回密码首页
router
.
get
(
'/back/index'
,
B
ack
.
index
);
router
.
get
(
'/back/index'
,
b
ack
.
index
);
// 实时验证输入是否正确
router
.
post
(
'/back/authcode'
,
Captcha
.
requiredAPI
,
Back
.
validateInputAPI
,
Back
.
getUserInfoAPI
);
// captcha.requiredAPI,
back
.
validateInputAPI
,
back
.
getUserInfoAPI
);
// 提交按钮邮件API
router
.
post
(
'/back/email'
,
// Captcha.requiredPage,
Back
.
validateUserPage
,
Back
.
sendCodePage
,
Back
.
saveInSession
);
back
.
validateUserPage
,
back
.
sendCodePage
,
back
.
saveInSession
);
// 提交按钮手机API
router
.
post
(
'/back/mobile'
,
Captcha
.
requiredPage
,
Back
.
validateUserPage
,
Back
.
sendCodePage
,
Back
.
saveInSession
);
captcha
.
requiredPage
,
back
.
validateUserPage
,
back
.
sendCodePage
,
back
.
saveInSession
);
/**
* 邮件找回密码
*/
// 发送邮件成功页面
router
.
get
(
'/back/sendEmail'
,
Back
.
validateEmailInSession
,
Back
.
sendEmailPage
);
back
.
validateEmailInSession
,
back
.
sendEmailPage
);
/**
* 短信找回密码
...
...
@@ -62,42 +63,43 @@ router.get('/back/verification',
// Back.validateMobileInSession,
// Captcha.requiredPage,
B
ack
.
verifyCodeByMobilePage
);
b
ack
.
verifyCodeByMobilePage
);
// 重新发送短信接口
router
.
post
(
'/back/sendBackMobile'
,
// Captcha.requiredAPI,
Back
.
validateMobileAPI
,
Back
.
sendBackMobileAPI
);
back
.
validateMobileAPI
,
back
.
sendBackMobileAPI
);
// 验证手机验证码接口
router
.
post
(
'/back/backMobile'
,
// Captcha.requiredAPI,
B
ack
.
verifyCodeByMobileAPI
);
b
ack
.
verifyCodeByMobileAPI
);
/**
* 重置密码
*/
// 重置密码页面
router
.
get
(
'/back/backcode'
,
Back
.
validateExistCodePage
,
Back
.
validateCodeByMobilePage
,
Back
.
validateCodeByEmailPage
,
Back
.
resetPasswordPage
);
back
.
validateExistCodePage
,
back
.
validateCodeByMobilePage
,
back
.
validateCodeByEmailPage
,
back
.
resetPasswordPage
);
// 重置密码接口
router
.
post
(
'/back/update'
,
Back
.
validateExistCodePage
,
Back
.
validateCodeByMobilePage
,
Back
.
validatePwdPage
,
Back
.
updatePwdAPI
);
back
.
validateExistCodePage
,
back
.
validateCodeByMobilePage
,
// Back.validatePwdPage,
back
.
updatePwdAPI
);
// 重置密码成功页面
router
.
get
(
'/back/resetSuccess'
,
// Back.checkSuccessStatusPage,
B
ack
.
resetPwdSuccessPage
);
b
ack
.
resetPwdSuccessPage
);
module
.
exports
=
router
;
...
...
library/helpers.js
View file @
9282a3b
...
...
@@ -325,7 +325,6 @@ exports.isPassword = (pwd) => {
return
false
;
}
// TODO
let
pwdRegexp
=
/^
([
a-zA-Z0-9
\-\+
_!@
\#
$%
\^
&
\*\(\)\:\;\.
=
\[\]\\\'
,
\?]){6,20}
$/
;
return
pwdRegexp
.
test
(
_
.
trim
(
pwd
));
...
...
public/js/passport/back/verification.js
View file @
9282a3b
...
...
@@ -41,6 +41,7 @@ $sc.click(function() {
$sc
.
val
(
seconds
--
+
'秒后可重新操作'
);
}
},
1000
);
}
else
{
$
(
this
).
addClass
(
'error'
);
$errTip
.
removeClass
(
'hide'
).
text
(
'发送失败'
);
...
...
Please
register
or
login
to post a comment