mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-28 23:16:56 +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)
|
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
|
// VerifyUserToken func will used to Verify the JWT Token while using APIS
|
||||||
func VerifyUserToken(tokenString string) (username string, issuperadmin, isadmin bool, err error) {
|
func VerifyUserToken(tokenString string) (username string, issuperadmin, isadmin bool, err error) {
|
||||||
claims := &models.UserClaims{}
|
claims := &models.UserClaims{}
|
||||||
|
|
|
||||||
|
|
@ -133,7 +133,7 @@ func SecurityCheck(reqAdmin bool, next http.Handler) http.HandlerFunc {
|
||||||
r.Header.Set("ismaster", "no")
|
r.Header.Set("ismaster", "no")
|
||||||
bearerToken := r.Header.Get("Authorization")
|
bearerToken := r.Header.Get("Authorization")
|
||||||
isGlobalAccesss := r.Header.Get("IS_GLOBAL_ACCESS") == "yes"
|
isGlobalAccesss := r.Header.Get("IS_GLOBAL_ACCESS") == "yes"
|
||||||
username, err := UserPermissions(reqAdmin, bearerToken)
|
username, err := GetUserNameFromToken(bearerToken)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ReturnErrorResponse(w, r, FormatError(err, err.Error()))
|
ReturnErrorResponse(w, r, FormatError(err, err.Error()))
|
||||||
return
|
return
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue