add new func to get username from jwt

This commit is contained in:
abhishek9686 2024-06-23 16:26:27 +05:30
parent 31fc7efe5f
commit aa9ea13564
2 changed files with 27 additions and 1 deletions

View file

@ -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{}

View file

@ -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