Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
publics
service-sdk-releases
Commits
791e69b0
Commit
791e69b0
authored
Oct 20, 2016
by
Evgeniy Zaitsev
Browse files
v0.0.22
parent
0b4468ee
Changes
2
Show whitespace changes
Inline
Side-by-side
middlewares/checkSessionToken.js
View file @
791e69b0
...
...
@@ -11,31 +11,32 @@ function * checkSessionToken(next) {
this
.
throwResponseErrorIfNeed
(
this
.
errors
);
const
user
=
yield
*
fetchUser
.
call
(
this
,
sessionToken
);
this
.
throwResponseErrorIfNeed
(
!
user
,
'
session token is invalid
'
);
const
user
=
yield
fetchUser
.
call
(
this
,
sessionToken
);
this
.
logger
.
log
(
__filename
,
'
user
'
,
user
);
this
.
throwResponseErrorIfNeed
(
!
user
||
!
user
.
id
,
'
session token is invalid
'
);
this
.
state
.
user
=
user
;
yield
next
;
}
function
*
fetchUser
(
sessionToken
)
{
function
fetchUser
(
sessionToken
)
{
const
queryString
=
`?service_id=
${
this
.
config
.
service
.
id
}
`
;
const
path
=
urlJoin
(
'
p
'
,
this
.
state
.
project
.
id
,
'
sessions
'
,
sessionToken
)
;
const
path
=
'
/p/
'
+
this
.
state
.
project
.
id
+
'
/
sessions
/
'
+
sessionToken
;
const
url
=
urlJoin
(
this
.
state
.
instance
.
auth_endpoint
,
path
+
queryString
);
const
salt
=
sha1
(
Date
.
now
()
+
'
salt
'
+
Date
.
now
());
const
signeableContent
=
path
+
queryString
;
const
signature
=
this
.
config
.
accessToken
+
signeableContent
+
salt
;
const
signature
=
sha1
(
this
.
config
.
accessToken
+
signeableContent
+
salt
);
const
headers
=
{
'
x-lvis-salt
'
:
salt
,
'
x-lvis-signature
'
:
signature
};
this
.
logger
.
log
(
__filename
,
queryString
,
path
,
signeableContent
,
salt
);
this
.
logger
.
log
(
__filename
,
'
fetch user url:
'
,
url
);
this
.
logger
.
log
(
__filename
,
'
fetch user url:
'
,
url
,
'
headers:
'
,
headers
);
yield
fetch
(
url
,
{
headers
:
{
'
X-LViS-Salt
'
:
salt
,
'
X-LViS-Signature
'
:
signature
}})
.
then
(
res
=>
res
.
json
())
.
then
(
user
=>
user
&&
Object
.
assign
(
user
,
{
sessionToken
:
sessionToken
}));
return
fetch
(
url
,
{
headers
:
headers
}).
then
(
res
=>
res
.
json
());
}
module
.
exports
=
checkSessionToken
;
package.json
View file @
791e69b0
{
"name"
:
"service-sdk"
,
"version"
:
"0.0.2
1
"
,
"version"
:
"0.0.2
2
"
,
"private"
:
true
,
"description"
:
"Service SDK for LViS"
,
"keywords"
:
[],
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment