Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
MKCLOS
Core Development Platform
corepkgv2
Commits
d3fab005
Commit
d3fab005
authored
4 years ago
by
Akshay Bharambe
Browse files
Options
Downloads
Patches
Plain Diff
Refactor: TWT decode
parent
49783548
Branches
Branches containing commit
Tags
Tags containing commit
2 merge requests
!210
Staging mepdeployment05072020
,
!200
Add: Session control
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
authmdl/jwtmdl/jwtmdl_fasthttp.go
+27
-25
authmdl/jwtmdl/jwtmdl_fasthttp.go
authmdl/jwtmdl/jwtmdl_http.go
+16
-14
authmdl/jwtmdl/jwtmdl_http.go
with
43 additions
and
39 deletions
authmdl/jwtmdl/jwtmdl_fasthttp.go
+
27
−
25
View file @
d3fab005
...
...
@@ -47,31 +47,33 @@ func DecodeTokenWithJWTKey(req *fasthttp.Request, jwtKey string) (jwt.MapClaims,
// DecodeToken decode token
func
DecodeToken
(
req
*
fasthttp
.
Request
)
(
jwt
.
MapClaims
,
error
)
{
tokenFromRequest
:=
string
(
req
.
Header
.
Peek
(
"Authorization"
))
tokenArray
:=
strings
.
Split
(
tokenFromRequest
,
"Bearer"
)
if
len
(
tokenArray
)
<=
1
{
return
nil
,
errormdl
.
Wrap
(
"Provided JWT token is nil or invalid "
)
}
tokenFromRequest
=
strings
.
Trim
(
tokenArray
[
1
],
" "
)
// get data i.e.Claims from token
token
,
err
:=
jwt
.
Parse
(
tokenFromRequest
,
func
(
token
*
jwt
.
Token
)
(
interface
{},
error
)
{
// Don't forget to validate the alg is what you expect:
_
,
ok
:=
token
.
Method
.
(
*
jwt
.
SigningMethodHMAC
)
if
!
ok
{
return
nil
,
fmt
.
Errorf
(
"Unexpected signing method: %v"
,
token
.
Header
[
"alg"
])
}
return
[]
byte
(
GlobalJWTKey
),
nil
})
//
tokenFromRequest := string(req.Header.Peek("Authorization"))
//
tokenArray := strings.Split(tokenFromRequest, "Bearer")
//
if len(tokenArray) <= 1 {
//
return nil, errormdl.Wrap("Provided JWT token is nil or invalid ")
//
}
//
tokenFromRequest = strings.Trim(tokenArray[1], " ")
//
//
get data i.e.Claims from token
//
token, err := jwt.Parse(tokenFromRequest, func(token *jwt.Token) (interface{}, error) {
//
// Don't forget to validate the alg is what you expect:
//
_, ok := token.Method.(*jwt.SigningMethodHMAC)
//
if !ok {
//
return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"])
//
}
//
return []byte(GlobalJWTKey), nil
//
})
if
err
!=
nil
{
loggermdl
.
LogError
(
"Error while parsing JWT Token: "
,
err
)
return
nil
,
err
}
//
if err != nil {
//
loggermdl.LogError("Error while parsing JWT Token: ", err)
//
return nil, err
//
}
claims
,
ok
:=
token
.
Claims
.
(
jwt
.
MapClaims
)
if
!
errormdl
.
CheckBool1
(
ok
)
{
loggermdl
.
LogError
(
"Error while parsing claims to MapClaims"
)
return
nil
,
errormdl
.
Wrap
(
"Error while getting claims"
)
}
return
claims
,
nil
// claims, ok := token.Claims.(jwt.MapClaims)
// if !errormdl.CheckBool1(ok) {
// loggermdl.LogError("Error while parsing claims to MapClaims")
// return nil, errormdl.Wrap("Error while getting claims")
// }
// return claims, nil
return
DecodeTokenWithJWTKey
(
req
,
GlobalJWTKey
)
}
This diff is collapsed.
Click to expand it.
authmdl/jwtmdl/jwtmdl_http.go
+
16
−
14
View file @
d3fab005
...
...
@@ -34,18 +34,20 @@ func DecodeTokenWithJWTKey(req *http.Request, jwtKey string) (jwt.MapClaims, err
// DecodeToken decode token
func
DecodeToken
(
req
*
http
.
Request
)
(
jwt
.
MapClaims
,
error
)
{
token
,
err
:=
request
.
ParseFromRequest
(
req
,
request
.
OAuth2Extractor
,
func
(
token
*
jwt
.
Token
)
(
interface
{},
error
)
{
b
:=
([]
byte
(
GlobalJWTKey
))
return
b
,
nil
})
if
errormdl
.
CheckErr
(
err
)
!=
nil
{
loggermdl
.
LogError
(
"Error while parsing JWT Token: "
,
errormdl
.
CheckErr
(
err
))
return
nil
,
errormdl
.
CheckErr
(
err
)
}
claims
,
ok
:=
token
.
Claims
.
(
jwt
.
MapClaims
)
if
!
errormdl
.
CheckBool1
(
ok
)
{
loggermdl
.
LogError
(
"Error while parsing claims to MapClaims"
)
return
nil
,
errormdl
.
Wrap
(
"Error while getting claims"
)
}
return
claims
,
nil
// token, err := request.ParseFromRequest(req, request.OAuth2Extractor, func(token *jwt.Token) (interface{}, error) {
// b := ([]byte(GlobalJWTKey))
// return b, nil
// })
// if errormdl.CheckErr(err) != nil {
// loggermdl.LogError("Error while parsing JWT Token: ", errormdl.CheckErr(err))
// return nil, errormdl.CheckErr(err)
// }
// claims, ok := token.Claims.(jwt.MapClaims)
// if !errormdl.CheckBool1(ok) {
// loggermdl.LogError("Error while parsing claims to MapClaims")
// return nil, errormdl.Wrap("Error while getting claims")
// }
// return claims, nil
return
DecodeTokenWithJWTKey
(
req
,
GlobalJWTKey
)
}
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets