2025-02-03 23:42:08 +03:00

39 lines
758 B
Go

package getters
import (
"enshi/auth"
"enshi/global"
"fmt"
"strconv"
"github.com/gin-gonic/gin"
"github.com/golang-jwt/jwt/v5"
)
func GetClaimsFromContext(c *gin.Context) (auth.UserInfoJWT, error) {
var UserInfo auth.UserInfoJWT
claims, exists := c.Get(global.ContextTokenData)
if !exists {
return auth.UserInfoJWT{}, fmt.Errorf("error getting user id 1")
}
parsedUserId, err := strconv.ParseInt(
claims.(jwt.MapClaims)["id"].(string),
10,
64,
)
if err != nil {
return auth.UserInfoJWT{}, fmt.Errorf("error parsing user id")
}
UserInfo.Id = parsedUserId
UserInfo.Username = claims.(jwt.MapClaims)["username"].(string)
isAdmin := claims.(jwt.MapClaims)["isAdmin"].(bool)
UserInfo.IsAdmin = isAdmin
return UserInfo, nil
}