zai2api / internal /jwt.go
bg5's picture
部署 zai2api 到 HF Space
ca50bff verified
Raw History Blame Contribute Delete
789 Bytes
package internal
import (
"encoding/base64"
"encoding/json"
"strings"
)
type JWTPayload struct {
ID string `json:"id"`
Email string `json:"email"`
}
func DecodeJWTPayload(token string) (*JWTPayload, error) {
parts := strings.Split(token, ".")
if len(parts) < 2 {
return nil, nil
}
payload := parts[1]
// Add padding if needed
if padding := 4 - len(payload)%4; padding != 4 {
payload += strings.Repeat("=", padding)
}
decoded, err := base64.URLEncoding.DecodeString(payload)
if err != nil {
decoded, err = base64.RawURLEncoding.DecodeString(parts[1])
if err != nil {
return nil, err
}
}
var result JWTPayload
if err := json.Unmarshal(decoded, &result); err != nil {
return nil, err
}
return &result, nil
}