29 lines
626 B
Go
29 lines
626 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"net/http"
|
|
|
|
jwt "github.com/golang-jwt/jwt/v5"
|
|
)
|
|
|
|
func jwtDecode(jwtKey string, jwtToken string, req *http.Request) {
|
|
claims := jwt.MapClaims{}
|
|
token, err := jwt.ParseWithClaims(jwtToken, claims, func(token *jwt.Token) (interface{}, error) {
|
|
return []byte(jwtKey), nil
|
|
})
|
|
if err != nil {
|
|
log.Panic("Failed to parse JWT:\n", err, "\n")
|
|
}
|
|
|
|
if token != nil {
|
|
log.Panic("Failed to parse JWT token:\n", token, "\n")
|
|
}
|
|
|
|
// do something with decoded claims
|
|
for key, val := range claims {
|
|
req.Header.Set(key, fmt.Sprint(val))
|
|
fmt.Printf("Key: %v, value: %v\n", key, val)
|
|
}
|
|
}
|