mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-25 05:27:23 +08:00
add new func to get username from jwt
This commit is contained in:
parent
31fc7efe5f
commit
aa9ea13564
2 changed files with 27 additions and 1 deletions
|
|
@ -87,6 +87,32 @@ func VerifyJWT(bearerToken string) (username string, issuperadmin, isadmin bool,
|
|||
return VerifyUserToken(token)
|
||||
}
|
||||
|
||||
func GetUserNameFromToken(tokenString string) (username string, err error) {
|
||||
claims := &models.UserClaims{}
|
||||
|
||||
if tokenString == servercfg.GetMasterKey() && servercfg.GetMasterKey() != "" {
|
||||
return MasterUser, nil
|
||||
}
|
||||
|
||||
token, err := jwt.ParseWithClaims(tokenString, claims, func(token *jwt.Token) (interface{}, error) {
|
||||
return jwtSecretKey, nil
|
||||
})
|
||||
|
||||
if token != nil && token.Valid {
|
||||
var user *models.User
|
||||
// check that user exists
|
||||
user, err = GetUser(claims.UserName)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if user.UserName != "" {
|
||||
return user.UserName, nil
|
||||
}
|
||||
err = errors.New("user does not exist")
|
||||
}
|
||||
return "", err
|
||||
}
|
||||
|
||||
// VerifyUserToken func will used to Verify the JWT Token while using APIS
|
||||
func VerifyUserToken(tokenString string) (username string, issuperadmin, isadmin bool, err error) {
|
||||
claims := &models.UserClaims{}
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ func SecurityCheck(reqAdmin bool, next http.Handler) http.HandlerFunc {
|
|||
r.Header.Set("ismaster", "no")
|
||||
bearerToken := r.Header.Get("Authorization")
|
||||
isGlobalAccesss := r.Header.Get("IS_GLOBAL_ACCESS") == "yes"
|
||||
username, err := UserPermissions(reqAdmin, bearerToken)
|
||||
username, err := GetUserNameFromToken(bearerToken)
|
||||
if err != nil {
|
||||
ReturnErrorResponse(w, r, FormatError(err, err.Error()))
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue