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
毕凯
9 years ago
Commit
67ef7cf8c5a454c327dbc350c6a73e72a9bf5388
1 parent
9b9732dd
修改接口签名
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
19 deletions
library/sign.js
library/sign.js
View file @
67ef7cf
...
...
@@ -6,7 +6,7 @@
'use strict'
;
const
_
=
require
(
'lodash
'
);
const
qs
=
require
(
'querystring
'
);
const
md5
=
require
(
'md5'
);
const
privateKey
=
{
...
...
@@ -24,7 +24,7 @@ const privateKey = {
* @return {Object} 排序之后的参数对象
*/
const
packageSort
=
argument
=>
{
var
newObj
=
{};
let
newObj
=
{};
for
(
let
k
of
Object
.
keys
(
argument
).
sort
())
{
newObj
[
k
]
=
argument
[
k
];
...
...
@@ -39,41 +39,32 @@ const packageSort = argument => {
* @return {string} 生成的签名字符串
*/
const
makeSign
=
argument
=>
{
var
qs
=
[];
_
.
forEach
(
argument
,
function
(
value
,
key
)
{
qs
.
push
(
key
+
'='
+
_
.
trim
(
value
));
});
return
md5
(
qs
.
join
(
'&'
)).
toLowerCase
();
return
md5
(
qs
.
stringify
(
argument
)).
toLowerCase
();
};
// 生成API签名,调用后端接口的时候有私钥校验
exports
.
apiSign
=
(
params
)
=>
{
var
clientType
=
params
.
client_type
||
'h5'
;
/* eslint-disable */
var
sign
=
packageSort
(
Object
.
assign
({
client_type
:
clientType
,
private_key
:
privateKey
[
clientType
],
client_type
:
'h5'
,
private_key
:
privateKey
.
h5
,
app_version
:
'3.8.2'
,
os_version
:
'yohobuy:h5'
,
screen_size
:
'720x1280'
,
v
:
'7'
},
params
));
/* eslint-enable */
return
Object
.
assign
(
sign
,
{
sign
=
Object
.
assign
(
sign
,
{
client_secret
:
makeSign
(
sign
)
// eslint-disable-line camelcase
});
delete
sign
.
private_key
;
return
sign
;
};
// 检查签名,APP 访问 H5 页面的时候需要检查
exports
.
checkSign
=
(
params
)
=>
{
var
clientSecret
=
params
.
client_secret
,
// eslint-disable-line camelcase
let
clientSecret
=
params
.
client_secret
,
// eslint-disable-line camelcase
sortedParams
;
// 忽略部分参数
...
...
@@ -90,7 +81,7 @@ exports.checkSign = (params) => {
// 检查签名,APP 访问 H5 页面的时候需要检查, 有可能不同于上边的签名方式
exports
.
webSign
=
(
params
)
=>
{
var
webPrivateKey
=
'yohobuyapp'
;
const
webPrivateKey
=
'yohobuyapp'
;
return
params
.
key
===
md5
(
md5
(
webPrivateKey
)
+
params
.
uid
);
};
...
...
Please
register
or
login
to post a comment